WPF设置来自儿童的窗口标题

时间:2010-01-28 14:36:31

标签: wpf windows user-controls window

如果我在UserControl中托管的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>

如何设置Window.Title中的UserControl

另一个要求是UserControl可以从静态resx文件中提取和设置窗口标题,例如{x:Static p:Resources.MyViewTitle}

修改

在做了一些研究后,我认为附属物可能就是答案。我如何实施Window.Title属性,我可以将其放置在任何孩子UserControl上,允许我设置Window标题?

3 个答案:

答案 0 :(得分:2)

(未经测试):使用VisualTreeHelper.GetParent向上遍历可视树,直到您到达Window类型的对象。然后将标题设置为Resources.ResxFileName.MyViewTitle(由于自动生成的资源类,应该在代码中可用)。

答案 1 :(得分:2)

答案是创建附加属性。请参阅:Creating a Window.Title Attached Property

答案 2 :(得分:0)

您可以为父窗口订阅的UserControl创建一个事件。