2011-11-24 34 views
1

我創建應在一個空XAML文件中使用自定義時間:創建一個DependencyObject的是「接受」直接內容

<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定義的「直接內容」?

回答

5

您需要將BlackAndWhiteWindow類的其中一個屬性標記爲「內容」屬性。您可以通過應用ContentPropertyAttribute來完成。

參見如何創建XAML友好型以下鏈接瞭解詳情:http://msdn.microsoft.com/en-us/library/ms753379.aspx

另一種選擇(首選)是從WPF的一個基類,例如繼承你的類ContentControlItemsControl。他們已經擁有了所有的基礎設施和物業。

+0

我添加了屬性,它允許我現在在xaml中正確編譯。問題是,如果我嘗試查看內容屬性中的內容,我總是發現它是空的(但是在xaml中,我在其中放置了一個文本塊) –

+0

該死,由我自己解決:缺少InitializeComponent <。< –

+0

您能否將此添加到你的答案,我可以標記它? *你也可以從IList接口(不是泛型接口)繼承這個類,這樣你就可以向類中添加多個控件(這個替換ContentPropertyAttribute * –