c # - Binding StaticResourse Nøgle i uwp

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at genopbygge hamburger-menuen med nogle FontAwesome-ikoner, min måde at gøre dette på er en ResourseDictionoary i min app. Nu vil jeg binde nøglen FontAwesomeUserString til glyph bellow. Min egenskab i objektet er ikon med type string. I min liste har ikonet af x:DataType="local:MenuItem" værdierne fra mit resoursedictionary.


<FontIcon Grid.Column="0" FontFamily="{StaticResource FontAwesomeFontFamily}" Glyph="{StaticResource FontAwesomeUserString}" Foreground="White" />
<TextBlock Grid.Column="1" Text="{x:Bind Name, Mode=OneWay}" TextWrapping="Wrap" FontSize="16" VerticalAlignment="Center" Foreground="White"/>


Fortæl mig om/hvordan jeg kan binde ResourceKey-ejendommen til StaticResourse.
tak skal du have

Bedste reference


Du kan ændre værdierne i en ressourceordbog ved at erstatte dem via kode som:


Application.Current.Resources["FontAwesomeUserString"] = "&glyphCode";


Glem ikke at StaticResource kun læses, når siden oprettes.


Afhængigt af, at du opdaterer din ordbog, kan det være nok, men hvis du vil have din ansøgning korrekt opdateret, når du ændrer noget i ressourceordbogen, skal du bruge ThemeResource.


Du kan få flere detaljer om ThemeResource her. [13]


<FontIcon Grid.Column="0" 
    FontFamily="{ThemeResource FontAwesomeFontFamily}" 
    Glyph="{ThemeResource FontAwesomeUserString}" 
    Foreground="White" />


Opdater


Hvis du bare forsøger at indstille glyph/font-familien til alle dine varer, er en regelmæssig binding tilstrækkelig:


<DataTemplate x:Key="DefaultTemplate" x:DataType="local:MenuItem">
        <Grid Width="240" Height="48">
           <Grid.ColumnDefinitions>
                <ColumnDefinition Width="48" />
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <FontIcon Grid.Column="0" FontFamily="{x:Bind FontFamily}" Glyph="{x:Bind Icon}" Foreground="White" />
            <TextBlock Grid.Column="1" Text="{x:Bind Name, Mode=OneWay}" TextWrapping="Wrap" FontSize="16" VerticalAlignment="Center" Foreground="White"/>
        </Grid>
    </DataTemplate>        


Du skal bare definere FontFamily og Icon i din visning mod.
el
Du kan kigge på hamburger-menuen fra UWP toolkit dokumentationen [14]