在WP7上以编程方式更改XAML中的图像(列表框)

时间:2011-10-14 19:50:34

标签: xaml windows-phone-7

下面是我用来创建车辆列表的XAML - 其中一辆车是“默认”车辆,如果默认设置设置为“true”,则旁边会显示一个星形图像”。这一切都很好,花花公子。

然而,对于浅色/深色主题,我想根据主题将图像的颜色从白色更改为黑色。但是我无法弄清楚如何做到这一点。我已经尝试以编程方式创建XAML资源并添加它,但这似乎不起作用。我也试过命名图像(正如你在下面的“iLPNS”中看到的那样,但是我无法在后面的代码中访问它,因为(我假设)它在列表框中包含项目之前并不存在。

有没有人有任何想法我怎么能这样做?

<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 个答案:

答案 0 :(得分:0)

在模板中包含图像的两个版本,然后在每个版本上使用转换器,根据当前主题更改可见性。