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>
完成后,当您 运行 单击组合框时,您可以看到带有图像的列表
希望对您有所帮助!
我想将图像直接包含到 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>
完成后,当您 运行 单击组合框时,您可以看到带有图像的列表
希望对您有所帮助!