2012-07-05 92 views
2

有沒有人有任何想法我可以在XAML中創建一個public static RichTextBox?如果我在代碼中聲明它很容易:XAML中的公共靜態控件

 public static RichTextBox r; 

但是在XAML中如何?它似乎應該是可能的,但我不能設法做到這一點:

<RichTextBox x:Name="convBox" Margin="29.333,26,39.333,95" VerticalScrollBarVisibility="Visible"> 

是否有可能使它從XAML公開和靜態?

謝謝!

+0

我不認爲這是可能的。 –

回答

1

您可以將其定義爲App.xaml中的資源。靜態變量實際上只是全局變量,App.xaml中定義的資源實際上也只是全局變量。當然有各種不同。我不確定這會用豐富的文本框達到什麼效果,但會以某種方式回答您的問題。

+0

如何在基於WinForm的應用程序中添加App.xaml文件,我所能做的就是添加UserControl相關的xaml。 – zionpi

2

不,這應該是而不是是可能的,因爲它將在該控件/窗口/等的所有實例中共享,這不能用一個實例來完成,因爲它有多個父母。

1

這是不可能的。你唯一的選擇是FieldModifier這可以使控制公開,而不是靜態的。

<RichTextBox x:Name="convBox" x:FieldModifier="public" Margin="29.333,26,39.333,95" VerticalScrollBarVisibility="Visible" /> 
0

這是可能的,正如@MikeKulls的解答所解釋的那樣。下面是實際執行:

的App.xaml:

<Application.Resources> 
    <RichTextBox x:Key="convBox" Margin="29.333,26,39.333,95" VerticalScrollBarVisibility="Visible"/> 
</Application.Resources> 

ViewUsingStaticControl.xaml

<Grid> 
    <ContentControl Content="{StaticResource convBox}"/> 
</Grid> 

重要提示: 正如@ HB的答覆中提到,元素只能有一個家長。以這種方式使用靜態控件的結果是,如果當前正在一個視圖中顯示靜態控件,然後顯示包含靜態控件的不同視圖,則靜態控件將從第一個視圖中移除並添加到加載最近的視圖。