我在WPF中遇到了关于测试的问题。我创建了一个自定义WindowChrome
,让tabheaders溢出到Chrome中。但是我遇到了关于命中测试的问题。
当我尝试在不打开标签的情况下拖动窗口时,hittest可以正常工作: http://i.imgur.com/D6b1yRz.png
但是只要我打开一个标签,它就不会再对Chrome进行测试了: http://i.imgur.com/RMH4AwN.png
我基本上在TabControl
的顶部和下方有一个包含Chrome的网格。两者都在Grid.Row = "0"
,TabControl
有WindowChrome.IsHitTestVisibleInChrome="True"
Background="{x:Null}"
Grid.RowSpan="2"
。
我尝试在谷歌搜索但无法找到解决此问题的方法。有人能指出我正确的方向吗?
似乎tabitems在它们旁边创建了一个透明而不是x:Null
的背景,从而使其失败了,有没有办法制作背景x:Null
或其他东西?
答案 0 :(得分:0)
您可以使用以下方式映射Background
:
<Style TargetType="TabItem">
<Setter Property="Background" Value="{x:Null}" />
</Style>
将它放到Window.Resources
。虽然你有点不清楚你要用这个来完成什么:你的标签项只有当你点击它们上面的“文字”时才可以选择,否则它现在会点击windows chrome。
答案 1 :(得分:0)
我通过在窥探中四处看看来修复它。我发现我需要在TabControl中编辑TabPanel。通过在TabControl.Resources中添加以下代码,我修复了问题:
<Style TargetType="{x:Type TabPanel}">
<Setter Property="Background" Value="{x:Null}"></Setter>
<Setter Property="HorizontalAlignment" Value="Left" />
</Style>
感谢您的帮助!