我們正在更新我們的庫WPF應用程序,其中包含我們的自定義樣式控件。設計的目的是在這些自定義控件背後顯示XAML,以方便參考,併爲新同事提供指導。如何在WPF應用程序中將XAML顯示爲文本
我目前實現這個的方法是創建兩個.xaml文件,一個包含控件,一個包含控件,另一個包含用於實現這些控件的XAML編碼的文本塊。
這不是容易維護的事情,因爲引號,>,<和其他字符不會在XAML字符串中轉義。作爲參考,這是我現在在的「顯示代碼」視圖中的一個:
<TextBlock Visibility="Collapsed" Margin="5" Text="<controls:AutoCompleteTagBox
Name="AutoCompleteTagBoxWithStrings"
Margin="5"
ItemsSource="{Binding Names}"
FilterMode="Contains" />
<ListBox
ItemsSource="{Binding ElementName=AutoCompleteTagBoxWithStrings, Path=SelectedItems}"
Grid.Column="1"
BorderBrush="{StaticResource Blue}" BorderThickness="1" />"/>
正如你所看到的,它並不好看,一旦你更新控件之一,你現在有三個地方,你需要更改XAML。
下一步就是綁定TextBlock的可見性,並將其從「摺疊」切換到「可見」。但我想知道是否有辦法在文本塊中顯示XAML而無需手動輸入字符串。
在此先感謝您的建議!
您是否嘗試使用'XamlWriter.Save'有一個例子(這裏)(http://social.technet.microsoft.com/wiki/contents/articles/ 12345.wpfhowto變頻-控制到XAML和 - 解析-XAML - 進入 - controls.aspx)。 – XAMlMAX 2015-02-23 10:38:39
我試過了,但由於XamlWriter無法序列化泛型類型,並且大部分變通辦法都試圖讓我重寫所有的控件類。這不是我們想要展示XAML的事情。 – 2015-02-24 08:28:51
好的。我只是看着[這篇文章](http://stackoverflow.com/questions/12265981/why-does-a-usercontrol-cause-a-serialization-error),並公平它似乎並不多的工作,如果你只是使用裝飾你的'綁定',除非當然它不是那麼簡單? – XAMlMAX 2015-02-24 10:30:18