如何更改组合框WPF的CornerRadius

背包

我想使用ComboBox不同的a CornerRadius,如何简单地更改它?我尝试了StyleControlTemplate,但没有成功。

理查德·E

我不知道这是否简单,但是ControlTemplate根据默认值创建一个ComboBox应该可以解决问题。这是一个例子:

    <Style x:Key="ComboBoxTextBoxStyle" TargetType="{x:Type TextBox}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TextBox}">
                    <Grid>
                        <Border CornerRadius="5,0,0,5"
                            BorderThickness="1"
                            Background="{TemplateBinding Background}"
                                BorderBrush="Black">
                            <ScrollViewer x:Name="PART_ContentHost"/>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style TargetType="{x:Type ComboBox}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ComboBox}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition MaxWidth="18"/>
                        </Grid.ColumnDefinitions>
                        <TextBox Name="PART_EditableTextBox"
                                 Style="{StaticResource ComboBoxTextBoxStyle}"
                                 Padding="5,0,0,0"
                                 Height="{TemplateBinding Height}"/>
                        <ToggleButton Grid.Column="1" Margin="0"
                                     Height="{TemplateBinding Height}"
                                     Style="{StaticResource ComboBoxButtonStyle}"
                                     Focusable="False"
                                     IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
                                      ClickMode="Press">
                            <Path Grid.Column="1"
                                  HorizontalAlignment="Center"
                                  VerticalAlignment="Center"
                                  Data="M 0 0 L 4 4 L 8 0 Z"
                                  Fill="DodgerBlue" />
                        </ToggleButton>
                        <ContentPresenter Name="ContentSite"
                                      Content="{TemplateBinding SelectionBoxItem}"
                                      ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
                                      ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
                                      VerticalAlignment="Center"
                                      HorizontalAlignment="Left"
                                      Margin="5,0,0,0"/>
                        <Popup Name="Popup"
                               Placement="Bottom"
                               IsOpen="{TemplateBinding IsDropDownOpen}"
                               AllowsTransparency="True" 
                               Focusable="False"
                               PopupAnimation="Slide">
                            <Grid Name="DropDown"
                                  SnapsToDevicePixels="True"                
                                  MinWidth="{TemplateBinding ActualWidth}"
                                  MaxHeight="{TemplateBinding MaxDropDownHeight}">
                                <Border 
                                    x:Name="DropDownBorder"
                                    BorderThickness="1"
                                    CornerRadius="5"
                                    Background="Azure"
                                    BorderBrush="Black"/>
                                <ScrollViewer Margin="4,6,4,6" SnapsToDevicePixels="True">
                                    <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" />
                                </ScrollViewer>
                            </Grid>
                        </Popup>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

您需要定义VisualStates/TriggersStyle必要时

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

每当我更改组合框1时,组合框2中的日期总是更改

来自分类Dev

更改组合框中“悬停的”项目的文本颜色?

来自分类Dev

更改组合框文本,但未选择项目

来自分类Dev

如何在Windows 8应用商店中更改组合框箭头的颜色

来自分类Dev

WPF更改组合框的背景色

来自分类Dev

在Winform应用程序中更改组合框的高度

来自分类Dev

WPF-更改组合框中的枚举的字符串值

来自分类Dev

更改组合框中某些行的背景颜色

来自分类Dev

MS Access Forms:如何动态更改组合框中的选择选项?

来自分类Dev

在delphi firemonkey mobile中更改组合框的字体颜色

来自分类Dev

UWP打开时更改组合框位置

来自分类Dev

更改组合框边框颜色-更改SelectedIndex时闪烁

来自分类Dev

Tkinter如何更改组合框小部件箭头图像

来自分类Dev

如何修改组合框的选定文本?

来自分类Dev

更改组合框时更新QAbstractTableModel

来自分类Dev

如何在运行时更改组合框的下拉样式?

来自分类Dev

wpf datagrid:动态更改组合框集合

来自分类Dev

更改组合框的样式和颜色

来自分类Dev

WPF-更改组合框中的枚举的字符串值

来自分类Dev

如何更改组合框C#mysql的起始位置

来自分类Dev

WPF:Style.Setter更改组合框的颜色,不会变回来

来自分类Dev

更改组合框JAVA的标题

来自分类Dev

在WPF中更改组合框的边框颜色

来自分类Dev

更改组合框的ListItem文本而不更改其值

来自分类Dev

如何更改组合框背景

来自分类Dev

如何在禁用状态下更改组合框的前景?

来自分类Dev

在datagridview中更改组合框单元格背景

来自分类Dev

ExtJS 动态更改组合框项的值

来自分类Dev

在 QML 中更改组合框颜色的正确方法

Related 相关文章

热门标签

归档