Создайте объект DependencyObject, который «принимает» прямой контент - PullRequest
1 голос
/ 24 ноября 2011

Я создаю пользовательское время, которое следует использовать в пустом файле XAML:

<windows:BlackAndWhiteWindow x:Class="GSdk.Shared.Windows.TestWindow"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:windows="clr-namespace:GSdk.Shared.Windows"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <windows:AnotherDependencyObject>A string</windows:AnotherDependencyObject>
</windows:BlackAndWhiteWindow>

Как я могу эффективно разрешить моему окну BlackAndWhite своего пользовательского класса (которое наследуется от DependencyObject и IDisposable) разрешить принятиечто определено в visual studio как «прямой контент»?

1 Ответ

5 голосов
/ 25 ноября 2011

Вам необходимо пометить одно из свойств класса BlackAndWhiteWindow как свойство "content".Вы можете сделать это, применив ContentPropertyAttribute.

См. Следующую ссылку для получения подробной информации о том, как создавать дружественные к XAML типы: http://msdn.microsoft.com/en-us/library/ms753379.aspx

Другой вариант (предпочтительный) - наследовать ваш класс от одного из базовых классов WPF, например ContentControl или ItemsControl.У них уже есть вся инфраструктура и свойства на месте.

...