Sistem kaynaklarını kullanma (WPF .NET)

Bu örnekte sistem tanımlı kaynakların nasıl kullanılacağı gösterilmektedir. Sistem kaynakları WPF tarafından sağlanır ve yazı tipleri, renkler ve simgeler gibi işletim sistemi kaynaklarına erişime izin verir. Sistem kaynakları, Windows ile tutarlı görseller oluşturmanıza yardımcı olmak için sistem tarafından tanımlanan çeşitli değerleri hem kaynaklar hem de özellikler olarak kullanıma sunar.

Önemli

.NET 7 ve .NET 6 için Masaüstü Kılavuzu belgeleri yapım aşamasındadır.

Yazı tipleri

SystemFonts İşletim sistemi tarafından kullanılan yazı tiplerine başvurmak için sınıfını kullanın. Bu sınıf, statik özellikler olarak sistem yazı tipi değerlerini ve çalışma zamanında bu değerlere dinamik olarak erişmek için kullanılabilecek kaynak anahtarlarına başvuran özellikleri içerir. Örneğin, CaptionFontFamily bir SystemFonts değerdir ve CaptionFontFamilyKey buna karşılık gelen bir kaynak anahtarıdır.

Aşağıdaki örnekte, bir metin bloğunu SystemFonts stil veya özelleştirmek için özelliklerine statik değerler olarak nasıl erişileceği ve bunların nasıl kullanılacağı gösterilmektedir:

<TextBlock FontSize="{x:Static SystemFonts.SmallCaptionFontSize}"
           FontWeight="{x:Static SystemFonts.SmallCaptionFontWeight}"
           FontFamily="{x:Static SystemFonts.SmallCaptionFontFamily}"
           Text="Small Caption Font">
</TextBlock>

değerlerini kodda kullanmak SystemFonts için statik değer veya dinamik kaynak başvurusu kullanmanız gerekmez. Bunun yerine sınıfının anahtar olmayan özelliklerini SystemFonts kullanın. Anahtar olmayan özellikler görünüşe göre statik özellikler olarak tanımlansa da, sistem tarafından barındırılan WPF'nin çalışma zamanı davranışı özellikleri gerçek zamanlı olarak yeniden değerlendirir ve sistem değerlerinde kullanıcı odaklı değişiklikleri düzgün bir şekilde hesaba katacaktır. Aşağıdaki örnek, bir düğmenin yazı tipi ayarlarının nasıl belirtileceğini gösterir:

var myButton = new Button()
{
    Content = "SystemFonts",
    Background = SystemColors.ControlDarkDarkBrush,
    FontSize = SystemFonts.IconFontSize,
    FontWeight = SystemFonts.MessageFontWeight,
    FontFamily = SystemFonts.CaptionFontFamily
};

mainStackPanel.Children.Add(myButton);
Dim myButton = New Button() With
{
    .Content = "SystemFonts",
    .Background = SystemColors.ControlDarkDarkBrush,
    .FontSize = SystemFonts.IconFontSize,
    .FontWeight = SystemFonts.MessageFontWeight,
    .FontFamily = SystemFonts.CaptionFontFamily
}

mainStackPanel.Children.Add(myButton)

XAML'de dinamik yazı tipleri

Sistem yazı tipi ölçümleri statik veya dinamik kaynak olarak kullanılabilir. Uygulama çalışırken yazı tipi ölçümünü otomatik olarak güncelleştirmek istiyorsanız dinamik kaynak kullanın; aksi takdirde, statik bir kaynak kullanın.

Dekont

Dinamik kaynakların anahtar sözcüğü Key özellik adına eklenir.

Aşağıdaki örnekte, bir metin bloğunu biçimlendirmek veya özelleştirmek için sistem yazı tipi dinamik kaynaklarına nasıl erişileceği ve bunların nasıl kullanılacağı gösterilmektedir:

<TextBlock FontSize="{DynamicResource {x:Static SystemFonts.SmallCaptionFontSize}}"
           FontWeight="{DynamicResource {x:Static SystemFonts.SmallCaptionFontWeight}}"
           FontFamily="{DynamicResource {x:Static SystemFonts.SmallCaptionFontFamily}}"
           Text="Small Caption Font">
</TextBlock>

Parametreler

SystemParameters Birincil ekranın boyutu gibi sistem düzeyinde özelliklere başvurmak için sınıfını kullanın. Bu sınıf hem sistem parametresi değer özelliklerini hem de değerlere bağlanan kaynak anahtarlarını içerir. Örneğin, FullPrimaryScreenHeight bir SystemParameters özellik değeridir ve FullPrimaryScreenHeightKey buna karşılık gelen kaynak anahtarıdır.

Aşağıdaki örnekte, bir düğmeyi stil veya özelleştirmek için statik değerlerine nasıl erişileceği ve bu değerlerin SystemParameters nasıl kullanılacağı gösterilmektedir. Bu işaretleme örneği, bir düğmeye değer uygulayarak SystemParameters düğmeyi boyutlandırıyor:

<Button FontSize="8" 
        Height="{x:Static SystemParameters.CaptionHeight}"
        Width="{x:Static SystemParameters.IconGridWidth}"
        Content="System Parameters">
</Button>

değerlerini kodda kullanmak SystemParameters için statik başvurular veya dinamik kaynak başvuruları kullanmanız gerekmez. Bunun yerine sınıfının değerlerini SystemParameters kullanın. Anahtar olmayan özellikler görünüşe göre statik özellikler olarak tanımlansa da, sistem tarafından barındırılan WPF'nin çalışma zamanı davranışı özellikleri gerçek zamanlı olarak yeniden değerlendirir ve sistem değerlerinde kullanıcı odaklı değişiklikleri düzgün bir şekilde hesaba katacaktır. Aşağıdaki örnekte, değerleri kullanarak SystemParameters bir düğmenin genişliğini ve yüksekliğini ayarlama gösterilmektedir:

var myButton = new Button()
{
    Content = "SystemParameters",
    FontSize = 8,
    Background = SystemColors.ControlDarkDarkBrush,
    Height = SystemParameters.CaptionHeight,
    Width = SystemParameters.CaptionWidth,
};

mainStackPanel.Children.Add(myButton);
Dim myButton = New Button() With
{
    .Content = "SystemParameters",
    .FontSize = 8,
    .Background = SystemColors.ControlDarkDarkBrush,
    .Height = SystemParameters.CaptionHeight,
    .Width = SystemParameters.CaptionWidth
}

mainStackPanel.Children.Add(myButton)

XAML'de dinamik parametreler

Sistem parametresi ölçümleri statik veya dinamik kaynak olarak kullanılabilir. Uygulama çalışırken parametre ölçümünü otomatik olarak güncelleştirmek istiyorsanız dinamik bir kaynak kullanın; aksi takdirde, statik bir kaynak kullanın.

Dekont

Dinamik kaynakların anahtar sözcüğü Key özellik adına eklenir.

Aşağıdaki örnekte, bir düğmeyi stil veya özelleştirmek için sistem parametresi dinamik kaynaklarına nasıl erişileceği ve bu kaynakların nasıl kullanılacağı gösterilmektedir. Bu XAML örneği, düğmenin genişliğine ve yüksekliğine değerler atayarak SystemParameters bir düğmeyi boyutlandırıyor.

<Button FontSize="8" 
        Height="{DynamicResource {x:Static SystemParameters.CaptionHeightKey}}"
        Width="{DynamicResource {x:Static SystemParameters.IconGridWidthKey}}"
        Content="System Parameters">
</Button>

Ayrıca bkz.