WPF Установить заголовок окна от ребенка - PullRequest
2 голосов
/ 28 января 2010

Если у меня есть 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}

Редактировать

После еще нескольких исследований, я думаю, что Attached Properties может быть ответом. Как я могу реализовать свойство Window.Title, которое я могу поместить в любой дочерний элемент UserControl, позволяя мне установить заголовок Window?

Ответы [ 3 ]

2 голосов
/ 28 января 2010

(не проверено): используйте VisualTreeHelper.GetParent для перемещения по визуальному дереву вверх, пока не достигнете объекта типа Window. Затем установите для заголовка значение Resources.ResxFileName.MyViewTitle (должно быть доступно в коде из-за автоматически сгенерированных классов ресурсов).

2 голосов
/ 01 февраля 2010

Ответ заключается в создании вложенного свойства. См .: Создание вложенного свойства Window.Title

0 голосов
/ 28 января 2010

Вы можете создать событие для UserControl, на которое подписывается родительское окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...