【问题标题】:Disable StackPanel Highlighting in XAML在 XAML 中禁用 StackPanel 突出显示
【发布时间】:2013-05-25 13:26:19
【问题描述】:

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

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

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

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

非常感谢您对此事的任何意见!

-问候

【问题讨论】:

  • 这是在ListBox 里面还是类似的东西?然后蓝色来自ListBoxItems 的默认样式。你需要覆盖它。
  • 添加图像,尝试使用 snoop 我命令查看可视化树

标签: c# wpf xaml user-interface


【解决方案1】:

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

【讨论】:

  • 谢谢你,我现在明白是父元素“菜单”导致了突出显示。然后我将如何禁用 项目的突出显示?
【解决方案2】:

由于您在评论中提到,您发现您实际上将Menu 的预期行为视为罪魁祸首。您只需要编辑MenuItem Control Template,更具体地说是导致突出显示的IsHighlighted。您可能会发现类似this 的内容很有帮助。

或者通过快速搜索自定义 WPF Menu / MenuItem 可以找到更多各种信息,希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 2011-02-21
    • 2014-12-17
    • 2015-10-30
    • 2014-11-29
    • 2015-07-11
    • 2014-11-12
    • 1970-01-01
    相关资源
    最近更新 更多