gpt4 book ai didi

c# - WPF:从自定义控件引用窗口

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:51 25 4
gpt4 key购买 nike

我已按照 this post 中接受的答案的说明进行操作关于为资源字典创建代码隐藏文件,它起作用了……所以现在我可以将事件附加到 generic.xml 文件中的控件。

但现在我希望能够从那里的事件调用 DragMove() 方法,因为当时没有任何对托管字典的窗口的引用,所以我不知道不知道如何调用此 DragMove() 方法。

那么,从资源字典代码隐藏文件中,有什么方法可以引用当前将托管该资源字典的窗口?


[更新](临时解决方案)

作为一个简单(但愚蠢)的解决方法,我目前已完成以下操作:
因为我可以从 Generic.xaml.cs 代码隐藏中引用 Application.Current.MainWindow,所以我现在在 Generic.xaml.cs:

private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Application.Current.MainWindow.DragMove();
}

然后我将 PreviewMouseLeftButtonDown 处理程序附加到我拥有的每个 Window,如下所示:

private void Window_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Application.Current.MainWindow = this;
}

它,好吧,它有效……直到有人想出正确的方法来做到这一点,它应该对我很有用。

最佳答案

我不知道该怎么做。但是,如果您尝试确定给定特定资源的 Window,您可以使用 RelativeSource:

<SolidColorBrush x:Key="MyBrush" Color="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Converter={StaticResource WindowToColorConverter}"/>

如果您是通过代码进行操作,则可以使用 Window.GetWindow() .您只需要在该 Window 中托管一个 DependencyObject

关于c# - WPF:从自定义控件引用窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/696072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com