Aracılığıyla paylaş


Simge uzantıları

Simge uzantıları, çeşitli XAML denetimleri arasında kullanılan çeşitli simge türlerinin (özellikle BitmapIcon, BitmapIconSource, FontIcon, FontIconSource, SymbolIconve SymbolIconSource) oluşturulmasını basitleştirmeyi amaçlayan bir grup işaretleme uzantısıdır. Bu uzantıların kullanılması her biri için yeni özellikleri etkinleştirmez, ancak bu simge türlerinin örneklerini oluşturmak için gereken XAML söz dizimini büyük ölçüde basitleştirir.

BitmapIconExtension

İşaretlemeyi BitmapIconExtension uzantısı yapısı önceki iki uzantıya benzer, ancak yazı tipi tabanlı simgeler yerine örnekler üretir BitmapIcon . Şu şekilde kullanılabilir:

<MenuFlyout xmlns:ui="using:CommunityToolkit.WinUI">

    <!--Before-->
    <MenuFlyoutItem Text="Click me!">
        <MenuFlyoutItem.Icon>
            <BitmapIcon Source="/Assets/myicon.png"/>
        </MenuFlyoutItem.Icon>
    </MenuFlyoutItem>

    <!--After-->
    <MenuFlyoutItem
        Text="No, click me!"
        Icon="{ui:BitmapIcon Source=/Assets/myicon.png}" />
</MenuFlyout>

BitmapIconSourceExtension

sınıfı BitmapIconSourceExtension türü yansıtır BitmapIconExtension ve tek fark bir BitmapIconSource örnek döndürmesidir. Şu şekilde kullanılabilir:

<SwipeItems
    xmlns:ui="using:CommunityToolkit.WinUI"
    Mode="Reveal">
    <SwipeItem Text="Send" IconSource="{ui:BitmapIconSource Source=/Assets/myicon.png}"/>
</SwipeItems>

FontIconExtension

türü, FontIconExtension hedef özelliğe atamak üzere açıkça yeni FontIcon bir nesne oluşturarak XAML'den daha küçük bir gösterimle örnekler oluşturma FontIcon olanağı sağlar. özelliği tüm kullanılabilir FontIcon özellikleri de eşler; bu nedenle iki API, yalnızca farklı bir XAML söz dizimi aracılığıyla aynı özelleştirme seçenekleri kümesini kullanıma sunar:

<CommandBar xmlns:ui="using:CommunityToolkit.WinUI">

    <!--Before-->
    <AppBarButton>
        <AppBarButton.Icon>
            <FontIcon Glyph="&#xE102;" FontFamily="{ThemeResource SymbolThemeFontFamily}"/>
        </AppBarButton.Icon>
    </AppBarButton>

    <!--After-->
    <AppBarButton Icon="{ui:FontIcon Glyph=&#xE102;}"/>
</CommandBar>

FontIconSourceExtension

FontIconSourceExtension sınıfı türü yansıtırFontIconExtension, ancak yerine FontIconörnekler oluştururFontIconSource:

<SwipeItems
    xmlns:ui="using:CommunityToolkit.WinUI"
    Mode="Reveal">

    <!--Before-->
    <SwipeItem Text="Accept">
        <SwipeItem.IconSource>
            <FontIconSource Glyph="&#xE10B;"/>
        </SwipeItem.IconSource>
    </SwipeItem>
    
    <!--After-->
    <SwipeItem Text="Accept" IconSource="{ui:FontIconSource Glyph=&#xE10B;}"/>
</SwipeItems>

SymbolIconExtension

Türü SymbolIconExtension , işaretleme uzantısını FontIcon yansıtır ve asıl fark, simgeyi belirtmek için bir Symbol değer kullanmasıdır. diğer tüm özellikleri FontIconExtension kullanılabilir, her zaman "Segoe MDL2 Assets" olarak ayarlanmış yazı tipi ailesi dışında. Şu şekilde kullanılabilir:

<CommandBar xmlns:ui="using:CommunityToolkit.WinUI">

    <!--Before-->
    <AppBarButton>
        <AppBarButton.Icon>
            <SymbolIcon Symbol="Play"/>
        </AppBarButton.Icon>
    </AppBarButton>

    <!--After-->
    <AppBarButton Icon="{ui:SymbolIcon Symbol=Play}"/>
</CommandBar>

Not

aslında SymbolIconExtension bir FontIcon değer yerine bir SymbolIcon değer döndürür. Bu, aksi takdirde kullanılamayan ek özellikleri (örn. FontSize, FontWeightvb.) eklemek için yapılır. Bunlar değiştirilmediğinde, sonuçta elde edilen simgenin görünümü yine de örneğin SymbolIcon kullanımından kaynaklanan görünümle aynı olacaktır.

SymbolIconSource

TürüSymbolIconSourceExtension, metin yerine değer Symbol alan ve "Segoe MDL2 Varlıkları" simgesini görüntüleyen bir alternatiftirFontIconSourceExtension. Bir örnek döndürmesi dışında türüne eşdeğerdir SymbolIconExtension FontIconSource :

<SwipeItems
    xmlns:ui="using:CommunityToolkit.WinUI"
    Mode="Reveal">
    <SwipeItem Text="Play" IconSource="{ui:SymbolIconSource Symbol=Play}"/>
</SwipeItems>

Açıklamalar

Bu işaretleme uzantıları tarafından döndürülen tüm değerler ad alanına Windows.UI.Xaml.* aittir. Bu, yalnızca bu ad alanından (WinUI ad alanı) değil Microsoft.UI.Xaml.* , bu ad alanından gelen denetimlerle kullanıldığında düzgün çalışacakları anlamına gelir. Örneğin, uzantısı yerine bir değer Microsoft.UI.Xaml.Controls.FontIconSource üreteceği için özelliğini üzerinde ayarlamak IconSource Microsoft.UI.Xaml.Controls.SwipeItems için kullanmaya FontIconSourceExtension çalışmak düzgün Windows.UI.Xaml.Controls.FontIconSource çalışmaz. WinUI denetimleriyle çalışırken, açık XAML söz dizimi ile ihtiyacınız olan simgeleri el ile bildirmeniz gerekir.

Örnekler

Birim testlerinde daha fazla örnek bulabilirsiniz.