String Format Kodları

Sayılar:
Specifier Type Format Output (Passed Double 1.42) Output (Passed Int -12400)
c Currency {0:c} $1.42 -$12,400
d Decimal (Whole number) {0:d} System.FormatException -12400
e Scientific {0:e} 1.420000e+000 -1.240000e+004
f Fixed point {0:f} 1.42 -12400.00
g General {0:g} 1.42 -12400
n Number with commas for thousands {0:n} 1.42 -12,400
r Round trippable {0:r} 1.42 System.FormatException
x Hexadecimal {0:x4} System.FormatException cf90

Özel Sayı Biçimlendirme:
Specifier Type Example Output (Passed Double 1500.42) Note
0 Zero placeholder {0:00.0000} 1500.4200 Pads with zeroes.
# Digit placeholder {0:(#).##} (1500).42
. Decimal point {0:0.0} 1500.4
, Thousand separator {0:0,0} 1,500 Must be between two zeroes.
,. Number scaling {0:0,.} 2 Comma adjacent to Period scales by 1000.
% Percent {0:0%} 150042% Multiplies by 100, adds % sign.
e Exponent placeholder {0:00e+0} 15e+2 Many exponent formats available.

Tarihler:
Specifier Type Example (Passed System.DateTime.Now)
d Short date 10/12/2002
D Long date December 10, 2002
t Short time 10:11 PM
T Long time 10:11:29 PM
f Full date & time December 10, 2002 10:11 PM
F Full date & time (long) December 10, 2002 10:11:29 PM
g Default date & time 10/12/2002 10:11 PM
G Default date & time (long) 10/12/2002 10:11:29 PM
M Month day pattern December 10
r RFC1123 date string Tue, 10 Dec 2002 22:11:29 GMT
s Sortable date string 2002-12-10T22:11:29
u Universal sortable, local time 2002-12-10 22:13:50Z
U Universal sortable, GMT December 11, 2002 3:13:50 AM
Y Year month pattern December, 2002

Özel Tarih Biçimlendirme:
Specifier Type Example Example Output
dd Day {0:dd} 10
ddd Day name {0:ddd} Tue
dddd Full day name {0:dddd} Tuesday
f, ff, … Second fractions {0:fff} 932
gg, … Era {0:gg} A.D.
hh 2 digit hour {0:hh} 10
HH 2 digit hour, 24hr format {0:HH} 22
mm Minute 00-59 {0:mm} 38
MM Month 01-12 {0:MM} 12
MMM Month abbreviation {0:MMM} Dec
MMMM Full month name {0:MMMM} December
ss Seconds 00-59 {0:ss} 46
tt AM or PM {0:tt} PM
yy Year, 2 digits {0:yy} 02
yyyy Year {0:yyyy} 2002
zz Timezone offset, 2 digits {0:zz} -05
zzz Full timezone offset {0:zzz} -05:00
: Separator {0:hh:mm:ss} 10:43:20
/ Separator {0:dd/MM/yyyy} 10/12/2002

Numaralandırmalar:
Specifier Type
g Default (Flag names if available, otherwise decimal)
f Flags always
d Integer always
x Eight digit hex.

Bazı Faydalı Örnekler:
String.Format(“{0:(###) ###-####}”, 8005551212); => (800) 555-1212

BusyIndicator Kullanımı

Extended WPF Toolkit içinde işe yarayan birçok kontrol var. BusyIndicator kontrolü bunlardan sadece biri. Aşağıdaki gibi kullanılabilir.

<Grid>
   <extToolkit:BusyIndicator x:Name="_busyIndicator">
      <Button Click="Button_Click">Start Process</Button>
   </extToolkit:BusyIndicator>
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
   BackgroundWorker bw = new BackgroundWorker();
   bw.DoWork += (o, ea) =>
   {
      Thread.Sleep(3000);
   };
   bw.RunWorkerCompleted += (o, ea) =>
   {
      _busyIndicator.IsBusy = false;
   };
   _busyIndicator.IsBusy = true;
   bw.RunWorkerAsync();
}

MultiBinding ve StringFormat

.NET Framework 3.5 SP1 ile gelen özelliklerden biri, ilişkili değerleri kolay biçimlendirmeyi sağlamak için, {{Binding}} ifadeler içinde kullanılabilen StringFormat desteğidir. MultiBinding ile birlikte kullanımı ile ilgili örnek aşağıdadır. Bu örnekte TextBlock’un Text özelliği Name ve Surname adlı iki özelliğe birden bağlanmıştır.

<TextBlock>
   <TextBlock.Text>
      <MultiBinding StringFormat="{}{0} {1}">
         <Binding Path="Name" />
         <Binding Path="Surname" />
      </MultiBinding>
   </TextBlock.Text>
</TextBlock>