Программно изменить изображение в XAML на WP7 (список)

#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:

Включите обе версии изображения в шаблон, а затем используйте конвертер для каждой, который изменяет видимость в зависимости от текущей темы.