如果我有一个UserControl
托pipe在Window
,如下所示:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <Grid> <ContentPresenter Content="{Binding}" /> </Grid> </Window>
如何从UserControl
设置Window.Title
?
另一个要求是UserControl
可以从一个静态的resx文件中拉取和设置窗口标题,例如{x:Static p:Resources.MyViewTitle}
编辑
在做了更多的研究后,我认为附加属性可能是答案。 我怎么能实现一个Window.Title
属性,我可以放在任何子UserControl
,允许我设置Window
标题?
(未经测试):使用VisualTreeHelper.GetParent向上遍历可视化树,直到到达Window
类型的对象。 然后将标题设置为Resources.ResxFileName.MyViewTitle
(由于自动生成的资源类应该在代码中可用)。
答案是创建一个附加的属性。 请参阅: 创建Window.Title附加属性
您可以为父窗口订阅的UserControl创建一个事件。