对于分隔符,可以仅更改此项,它包含在MenuItem中。 因此我不得不使用:
<Style TargetType="{x:Type Separator}" x:Key="{x:Static MenuItem.SeparatorStyleKey}">
有没有像menuitem和RadioButton这样的东西? 另一个问题是,这只能在windows7下正常工作,而不是在Windows XP下。 我稍后发布整个代码,但我没有用密钥指定分隔符。它的工作原理 - 在windows7下。在Windows XP上,颜色变为,但是一个奇怪的透明边框是关于整个分隔符。但我只绘制了一个边框,用我的分隔符控件模板中的颜色填充它而不是两个!
我可以找到孩子的某个地方 - “Stylekey”用于MenuItem吗? vs此时没有情报。
答案 0 :(得分:0)
这是完整的代码:
<Style TargetType="{x:Type Separator}" x:Key="{x:Static MenuItem.SeparatorStyleKey}">
<Setter Property="Background" Value="{Binding Path=Foreground, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Menu}}}"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Border Background="{TemplateBinding Background}"
SnapsToDevicePixels="True"
Height="2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
windows xp的问题是,我没有覆盖默认样式。
单选按钮和复选框的另一个问题始终存在
另一个问题是,我必须覆盖网格背景的默认样式。我不得不在网格的背景上画一条颜色并包含默认内容。 不应在每个窗口手动添加该行,应该在应用程序的每个窗口的相同位置。
但该行应该只是一行而不是填满整个窗口,我不知道窗口的宽度和高度。我可以使用吗?有什么例子吗?