#xaml #windows-phone-7
#xaml #windows-phone-7
Вопрос:
Ниже приведен XAML, который я использую для создания списка транспортных средств в этом экземпляре — одно из транспортных средств является транспортным средством «по умолчанию», а рядом с ним отображается изображение звезды, если для параметра по умолчанию установлено значение «true». Все это отлично работает.
Однако для светлых / темных тем я бы хотел изменить цвет изображения с белого на черный в зависимости от темы. Однако я не могу понять, как это сделать. Я пытался программно создать ресурс XAML и добавить его, но это, похоже, не работает. Я также попытался присвоить изображению имя (как вы можете видеть ниже «ILPN», однако я не могу получить к нему доступ в своем коде, потому что (я предполагаю) оно на самом деле не существует, пока список не будет содержать элементы.
У кого-нибудь есть идеи, как я могу это сделать?
<controls:PivotItem Header="vehicles" Name="piLPNS">
<Grid>
<TextBlock Text="A list of the vehicles associated with your account are listed below. To make changes to your vehicle list using the buttons below or by tapping the desired vehicle." Margin="12,0,0,0" TextWrapping="Wrap" />
<ListBox Height="300" HorizontalAlignment="Left" Margin="0,135,0,0" Name="lbLPNList" VerticalAlignment="Top" Width="456" SelectionChanged="lbLPNList_SelectionChanged" ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal" Height="60" Width="432" HorizontalAlignment="Center">
<StackPanel Orientation="Vertical" Height="60" Width="40" Margin="12,0,0,0">
<StackPanel Orientation="Horizontal" Height="45">
<Image Name="iLPNS" Source="/Parkmobile;component/Resources/Icons/Icon.Star.Resource.png" Margin="0,5,0,0" Visibility="{Binding Default, Converter={StaticResource VisibilityConverter}}" Height="36" Width="36" HorizontalAlignment="Right"/>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Vertical" Height="60">
<StackPanel Orientation="Horizontal" Height="45">
<TextBlock Margin="10,0,0,0" FontSize="36" Text="{Binding ShortDisplay}" />
</StackPanel>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</controls:PivotItem>
Ответ №1:
Включите обе версии изображения в шаблон, а затем используйте конвертер для каждой, который изменяет видимость в зависимости от текущей темы.