ComboBox-对齐并填充所选项目的文本,并为组合框项目创建鼠标悬停

我目前正在为我们的网站将要使用的程序设计一个小型应用程序,并且遇到了有关组合框的问题。我终于到达了它需要达到的基本阶段,但是我在设计文本样式时遇到了问题,以使文本集中对齐并为当前所选项目填充5个像素。我尝试将设置器添加到我认为正确的位置,尝试将其添加VerticalContentAlignment="Center"到主XAML文件中,但没有任何改变。

在此处输入图片说明

我还想做的是,当这些选项滚动时,它们具有不同的背景色。我尝试将MouseOver视觉状态添加到ComboBoxItem,但无济于事。对于冗长的代码(可能很凌乱),我们事先表示歉意。这是一项在旅途中的学习,其中大部分来自MSDN,然后根据需要进行编辑。非常感谢。

代码:http//pastebin.com/gQpp2W3U

阿纳托利·尼古拉耶夫(Anatoliy Nikolaev)

这是因为参数HorizontalContentAlignmentVerticalContentAlignment没有ContentPresenter正确地传递到ControlTemplate中

<ContentPresenter x:Name="ContentSite"
                  ...
                  VerticalAlignment="Stretch"
                  HorizontalAlignment="Left">
</ContentPresenter> 

在这种情况下,参数是“缝制的”,应如下所示:

<ContentPresenter x:Name="ContentSite"
                  ...
                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}">
</ContentPresenter> 

对于必要的动态背景元素,请在<ControlTemplate.Triggers>部分中添加一个触发器,然后在其中添加通用网格的名称ComboBox

<ControlTemplate.Triggers>
    ...
    <Trigger Property="SelectedValue" Value="BATTLEFIELD4">
        <Setter TargetName="MainGrid" Property="Background" Value="Green" />
    </Trigger>

    <Trigger Property="SelectedValue" Value="CALLOFDUTY4">
        <Setter TargetName="MainGrid" Property="Background" Value="Blue" />
    </Trigger>

    <Trigger Property="SelectedValue" Value="CS">
        <Setter TargetName="MainGrid" Property="Background" Value="Red" />
    </Trigger>
</ControlTemplate.Triggers>

使用示例:

<Window ...
        xmlns:sys="clr-namespace:System;assembly=mscorlib">

<Window.Resources>
    <x:Array x:Key="TestArray" Type="{x:Type sys:String}">
        <sys:String>BATTLEFIELD4</sys:String>
        <sys:String>CALLOFDUTY4</sys:String>
        <sys:String>CS</sys:String>
    </x:Array>
</Window.Resources>

<Grid>
    <ComboBox SelectedIndex="0"
              Foreground="White"
              Background="Blue"
              Height="60"
              HorizontalContentAlignment="Center"
              VerticalContentAlignment="Center" 
              ItemsSource="{StaticResource TestArray}" />           
</Grid>

琐事还添加了一些详细信息,可以下载该项目的完整版本here

Output

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改 ComboBox 所选项目的文本 - UWP

来自分类Dev

无法获得ComboBox所选项目的值

来自分类Dev

ComboBox不会更新所选项目

来自分类Dev

当另一个组合框更改所选值时设置 ComboBox 所选项目 c#

来自分类Dev

ComboBox 项的鼠标悬停颜色

来自分类Dev

C#WPF如何修改ComboBox所选项目的颜色?

来自分类Dev

JavaFX ComboBox-如何获取不同的提示文本和所选项目文本?

来自分类Dev

如何获取每个项目的ComboBox项目文本?

来自分类Dev

在F#ComboBox中设置所选项目

来自分类Dev

WPF ComboBox和所选项目出现问题

来自分类Dev

所选项目ComboBox没有显示正确的ID WPF

来自分类Dev

正确更新MVVM中的ComboBox所选项目

来自分类Dev

ComboBox 尝试设置所选项目导致编译错误

来自分类Dev

自定义ComboBox样式看不到所选项目文本

来自分类Dev

BackgroundColor项目ComboBox WPF

来自分类Dev

ComboBox项目返回索引

来自分类Dev

使用循环的ComboBox项目

来自分类Dev

更改绑定的 ComboBox 项目

来自分类Dev

如何根据其他comboBox的选定项目更改comboBox选项

来自分类Dev

如何将带有值转换器的WPF组合框所选项目绑定到DataGridTextColumn?DataGridTextColumn和combobox都是datagrid列

来自分类Dev

用来自不同ViewModel的项目填充ComboBox

来自分类Dev

c# wpf 是否有 ComboBox 的鼠标悬停事件

来自分类Dev

组合的ComboBox导致InvalidCastException

来自分类Dev

从Access填充ComboBox

来自分类Dev

从ComboBox移除填充

来自分类Dev

在xamDataGrid内填充ComboBox

来自分类Dev

使用自定义项目模板在ComboBox中显示所选项目

来自分类Dev

javafx创建ComboBox TableCell

来自分类Dev

QML ComboBox项目DropDownMenu样式

Related 相关文章

热门标签

归档