在XAML中禁用StackPanel突出显示

时间:2013-05-24 17:30:35

标签: c# wpf xaml user-interface

我发现这件事的信息很少。知道我是C#和WPF的新手:

我在XAML文件中定义了一个堆栈面板:

<StackPanel Orientation="Vertical" >
        <TextBlock Text="Locale: "  VerticalAlignment="Center"/>
        <ComboBox x:Name="comboLocale" Width="60" VerticalAlignment="Center" SelectionChanged="comboLocale_SelectionChanged"/>
</StackPanel>

我想禁用在MouseOver堆栈面板时发生的突出显示,由于某种原因,它会在StackPanel内部创建蓝色。我还没有设置任何特殊风格。一些线程谈到将OverridesDefaultStyle设置为TRUE,但这似乎没有改变任何东西。此外,StackPanel没有可用的ControlTemplate,因此我找到的大多数解决方案都无法应用,因为它们引用了Button或TextBlock。

对此事的任何意见都将不胜感激!

-Regards

2 个答案:

答案 0 :(得分:2)

StackPanels通常没有可视化表示,只是控制其他元素放置的布局容器。鉴于您未在Background上设置StackPanel之类的内容,除非您的XAML或代码的其他部分正在修改它,否则不会导致您看到突出显示的内容。您描述的行为听起来像是Button的默认行为,但是如果没有看到更多的代码,则很难分辨出行为的来源。

答案 1 :(得分:1)

自从你在评论中提到,你发现你实际上是在查看Menu作为罪魁祸首的预期行为。您只需要编辑MenuItem Control Template,更具体地说是导致您突出显示的IsHighlighted。你可能会发现像this这样有用的东西。

或者通过快速搜索自定义WPF Menu / MenuItem找到了更多的各种信息,希望这会有所帮助。