RibbonCombobox:更改颜色后出现橙色边框
RibbonCombobox: orange border is appeared after changing color
我有一个简单的功能区组合框(MS Ribbon for WPF)并尝试更改其样式。
当我将属性 "PressedBackground" 和 "PressedBorderBrush" 设置为任何颜色时,会出现橙色边框。
见截图:
XAML:
<ribbon:RibbonComboBox SelectionBoxWidth="110" PressedBackground="Blue" PressedBorderBrush="Black">
<ribbon:RibbonGallery></ribbon:RibbonGallery>
</ribbon:RibbonComboBox>
有什么想法可以删除此边框吗?
要进行更改,您必须编辑 RibbonComboBox 模板并更改橙色边框出现的位置,为此我更喜欢使用 Blend 或 Vs 设计器:
Select RibbonComboBox 控件,
将 RibbonComboBox 转换为属性中的本地资源 window:
在IsChecked
下Trigger
改变InnerBorder
从渐变橙色,
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" TargetName="OuterBorder" Value="{Binding CheckedBackground, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{Binding CheckedBorderBrush, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="BorderBrush" TargetName="InnerBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFE7CBAD" Offset="0"/>
<GradientStop Color="#FFF7D7B5" Offset="0.1"/>
<GradientStop Color="#FFFFD38C" Offset="0.36"/>
<GradientStop Color="#FFFFC75A" Offset="0.36"/>
<GradientStop Color="#FFFFEFA5" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
你想要什么颜色:
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" TargetName="OuterBorder" Value="{Binding CheckedBackground, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{Binding CheckedBorderBrush, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="BorderBrush" TargetName="InnerBorder">
<Setter.Value>
<SolidColorBrush Color="Red"></SolidColorBrush>
</Setter.Value>
输出:
我有一个简单的功能区组合框(MS Ribbon for WPF)并尝试更改其样式。 当我将属性 "PressedBackground" 和 "PressedBorderBrush" 设置为任何颜色时,会出现橙色边框。
见截图:
XAML:
<ribbon:RibbonComboBox SelectionBoxWidth="110" PressedBackground="Blue" PressedBorderBrush="Black">
<ribbon:RibbonGallery></ribbon:RibbonGallery>
</ribbon:RibbonComboBox>
有什么想法可以删除此边框吗?
要进行更改,您必须编辑 RibbonComboBox 模板并更改橙色边框出现的位置,为此我更喜欢使用 Blend 或 Vs 设计器:
Select RibbonComboBox 控件,
将 RibbonComboBox 转换为属性中的本地资源 window:
在IsChecked
下Trigger
改变InnerBorder
从渐变橙色,
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" TargetName="OuterBorder" Value="{Binding CheckedBackground, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{Binding CheckedBorderBrush, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="BorderBrush" TargetName="InnerBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFE7CBAD" Offset="0"/>
<GradientStop Color="#FFF7D7B5" Offset="0.1"/>
<GradientStop Color="#FFFFD38C" Offset="0.36"/>
<GradientStop Color="#FFFFC75A" Offset="0.36"/>
<GradientStop Color="#FFFFEFA5" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
你想要什么颜色:
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" TargetName="OuterBorder" Value="{Binding CheckedBackground, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="{Binding CheckedBorderBrush, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="BorderBrush" TargetName="InnerBorder">
<Setter.Value>
<SolidColorBrush Color="Red"></SolidColorBrush>
</Setter.Value>
输出: