按钮和更改滚动界面中的 WPF 组合框,数据绑定到自定义?喜欢这个上传图片
WPF Combobox in Button and Change Scroll InterFace, Data binding to a custom? like this upload picture
这个模型
public class Media
{
private List<string> mediaName;
public List<string> MediaName
{
get { return mediaName; }
set { mediaName = value; }
}
}
这个xaml代码
<ComboBox x:Name="MediaCombo" ItemsSource="{Binding Media}" SelectionChanged="MediaCombo_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ComboBox.ItemTemplate>
我找不到方法,contextmenu..combobox...等。如何
如何制作喜欢的图片?
Combobox Image
欢迎来到 SO!
如果这个问题被标记为关闭,请不要感到惊讶,该站点是针对 answers to very specific questions 而不是 "how do I do this?"
不过,要开始使用,您需要对控件进行模板化以替换默认外观。如果将编辑光标放在 XAML 中的 ComboBox 声明上,转到属性页,单击 Miscellaneous->Template 右侧的小框,然后 select "Convert to new resource" 然后 VS 将为您模板控制。 (对于 ComboBox,您可能还需要添加对 PresentationFramework.Aero2 的项目引用)。
创建的控件模板中将包含一个带有 x:Name="DropDownScrollViewer"
的 ScrollViewer,因此在该模板上重复此过程以将该元素模板化到名为 ScrollViewerControlTemplate1
的新模板中。这将有一个用于 x:Name="PART_VerticalScrollBar"
的实际垂直滚动条的控件,因此再次重复以获得名为 ScrollBarControlTemplate1
的最终控件模板。这是您要更改其外观的滚动条,因此您可以简单地覆盖其内容以获得您想要的效果,例如:
<ControlTemplate x:Key="ScrollBarControlTemplate1" TargetType="{x:Type ScrollBar}">
<Border BorderBrush="{DynamicResource VS.Environment.ScrollBarBorderBrush}" Uid="Border_3" Padding="5">
<Grid Uid="Grid_1">
<Border BorderThickness="1" BorderBrush="Gray" CornerRadius="5"/>
<Track x:Name="PART_Track" IsDirectionReversed="True" Uid="PART_Track">
<Track.Thumb>
<Thumb Uid="Thumb_1">
<Thumb.Template>
<ControlTemplate>
<Border Background="Gray" CornerRadius="5"/>
</ControlTemplate>
</Thumb.Template>
</Thumb>
</Track.Thumb>
</Track>
</Grid>
</Border>
</ControlTemplate>
...这将导致:
分页按钮我没有做过,但基本上是一样的思路。在创建的原始 ScrollBarControlTemplate1
中查找 RepeatButton
类型的元素(我删除了)并将它们放在 ScrollViewerControlTemplate1
中而不是包含列表元素的 ScrollContentPresenter
下方他们自己。
这个模型
public class Media
{
private List<string> mediaName;
public List<string> MediaName
{
get { return mediaName; }
set { mediaName = value; }
}
}
这个xaml代码
<ComboBox x:Name="MediaCombo" ItemsSource="{Binding Media}" SelectionChanged="MediaCombo_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ComboBox.ItemTemplate>
我找不到方法,contextmenu..combobox...等。如何
如何制作喜欢的图片? Combobox Image
欢迎来到 SO!
如果这个问题被标记为关闭,请不要感到惊讶,该站点是针对 answers to very specific questions 而不是 "how do I do this?"
不过,要开始使用,您需要对控件进行模板化以替换默认外观。如果将编辑光标放在 XAML 中的 ComboBox 声明上,转到属性页,单击 Miscellaneous->Template 右侧的小框,然后 select "Convert to new resource" 然后 VS 将为您模板控制。 (对于 ComboBox,您可能还需要添加对 PresentationFramework.Aero2 的项目引用)。
创建的控件模板中将包含一个带有 x:Name="DropDownScrollViewer"
的 ScrollViewer,因此在该模板上重复此过程以将该元素模板化到名为 ScrollViewerControlTemplate1
的新模板中。这将有一个用于 x:Name="PART_VerticalScrollBar"
的实际垂直滚动条的控件,因此再次重复以获得名为 ScrollBarControlTemplate1
的最终控件模板。这是您要更改其外观的滚动条,因此您可以简单地覆盖其内容以获得您想要的效果,例如:
<ControlTemplate x:Key="ScrollBarControlTemplate1" TargetType="{x:Type ScrollBar}">
<Border BorderBrush="{DynamicResource VS.Environment.ScrollBarBorderBrush}" Uid="Border_3" Padding="5">
<Grid Uid="Grid_1">
<Border BorderThickness="1" BorderBrush="Gray" CornerRadius="5"/>
<Track x:Name="PART_Track" IsDirectionReversed="True" Uid="PART_Track">
<Track.Thumb>
<Thumb Uid="Thumb_1">
<Thumb.Template>
<ControlTemplate>
<Border Background="Gray" CornerRadius="5"/>
</ControlTemplate>
</Thumb.Template>
</Thumb>
</Track.Thumb>
</Track>
</Grid>
</Border>
</ControlTemplate>
...这将导致:
分页按钮我没有做过,但基本上是一样的思路。在创建的原始 ScrollBarControlTemplate1
中查找 RepeatButton
类型的元素(我删除了)并将它们放在 ScrollViewerControlTemplate1
中而不是包含列表元素的 ScrollContentPresenter
下方他们自己。