Windows phone 8.1 ComboBox样式图片

Windows phone 8.1 ComboBox style Image

我想将图像直接包含到 ComboBox 模板中。

我找到了这部分代码,我相信我会把它放在这里:

<Button x:Name="FlyoutButton" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" FontWeight="Normal" FlowDirection="{TemplateBinding FlowDirection}" FontSize="{ThemeResource ContentControlFontSize}" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" MinHeight="{ThemeResource ComboBoxItemMinHeightThemeSize}" Padding="6.5,0,0,0" Grid.Row="1">
   <ContentPresenter x:Name="ContentPresenter" Margin="0,0.8,0,0" MinHeight="32.5">
       <TextBlock x:Name="PlaceholderTextBlock" Margin="0" Style="{StaticResource ComboBoxPlaceholderTextBlockStyle}" Text="{TemplateBinding PlaceholderText}"/>
   </ContentPresenter>
</Button>

我无法将图像放入 contentPresenter,因为它说我只能设置 'Content' 一次。

如果我做这样的事情:

<ContentPresenter x:Name="ContentPresenter" Margin="0,0.8,0,0" MinHeight="32.5">
   <StackPanel Orientation="Horizontal">
       <TextBlock x:Name="PlaceholderTextBlock" Margin="0" Style="{StaticResource ComboBoxPlaceholderTextBlockStyle}" Text="{TemplateBinding PlaceholderText}"/>
       <Image Source="ms-appx:///Assets/Arrow.png" />
   </StackPanel>
</ContentPresenter>

它确实有效,但我的 XAML 查看页面出现错误:"No installed components were detected. Cannot resolve TargetName PlaceholderTextlock."。而且图像在我 select 一个项目后消失了。

我希望得到一些指导。

我相信您想将组合框内的项目设置为带有文本块的图像。在这种情况下,您需要像这样设置组合框的 ItemTemplate

<ComboBox Name="hik" ItemTemplate="{StaticResource cmbx}">

并且在您的页面资源中,您可以像这样为组合框项目定义项目模板

<DataTemplate x:Key="cmbx">
    <StackPanel Orientation="Horizontal" Background="Aqua">
        <TextBlock HorizontalAlignment="Left" Margin="0,0,0,0" Foreground="Black"  TextWrapping="Wrap" Text="Some Text" VerticalAlignment="Top"/>
        <Image Source="/Assets/1.png" Stretch="Uniform" Height="100" Width="100" />
    </StackPanel>
</DataTemplate>

完成后,当您 运行 单击组合框时,您可以看到带有图像的列表

希望对您有所帮助!