C# WPF测试窗口拇指区域?
我有一个C# WPF测试窗口拇指区域?,c#,wpf,xaml,C#,Wpf,Xaml,我有一个wpf窗口,带有一个自定义的“header”/“thumb”模板。 自定义含义-在“拇指”窗口中添加了几个按钮 我试图解决的问题是“关闭”窗口标题双击功能(默认情况下最大化窗口) 我所做的-我订阅了窗口。预览鼠标双击事件, 然后做了下面的事情 void OnPreviewMouseDoubleClick(object sender, someargs e){ e.handled = true } 我的问题是-我只需要这样做,如果双击发生在拇指区域。(上面的代码禁止双击窗口中的所
wpf
窗口,带有一个自定义的“header”/“thumb”模板。
自定义含义-在“拇指”窗口中添加了几个按钮
我试图解决的问题是“关闭”窗口标题双击功能(默认情况下最大化窗口)
我所做的-我订阅了窗口。预览鼠标双击事件,
然后做了下面的事情
void OnPreviewMouseDoubleClick(object sender, someargs e){
e.handled = true
}
我的问题是-我只需要这样做,如果双击发生在拇指区域。(上面的代码禁止双击窗口中的所有控件)
因此,问题是如何从代码中访问thumb元素:
void OnPreviewMouseDoubleClick(object sender, someargs e){
var pos = e.GetPosition((UIElement) sender);
if (VisualTreeeHelper.HitTest(XXXXXXXXXXXXXXXX, post))
e.handled = true
}
你知道我应该用什么来代替XXXXXXXXXX吗
我的窗口模板如下所示
我以为这应该行得通,但我得到了一个空值
var z = this.Template.FindName("HeaderBorder", (FrameworkElement)sender);
答案是这个案子很简单
private void TimersCollectionWindow_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
//Disable Double click inside the Title Bar
var elem = VisualTreeHelper.HitTest(FloatingContainerHeader, e.GetPosition(FloatingContainerHeader));
if (elem != null) e.Handled = true;
}
由于DevXPress公开了“FloatingContainerHeader”的内容:)如果你有网格名称,可能是网格名称?如果有帮助,我添加了一个屏幕。边界可能是这里的问题。您可以用网格或画布包装边框,并像这样使用:visualtreeheloper.HitTest(canvasName/gridName,post)代码>立即使用网格?我想一定是因为边境有问题。是一个很薄的视觉元素。