有没有人知道如何在XAML中创建public static RichTextBox
?如果我在代码中声明它很容易:
public static RichTextBox r;
但是XAML怎么样?似乎它应该是可能的,但我无法做到:
<RichTextBox x:Name="convBox" Margin="29.333,26,39.333,95" VerticalScrollBarVisibility="Visible">
是否可以从XAML公开和静态?
谢谢!
答案 0 :(得分:2)
不,这应该不是可能的,因为它将在该控件/窗口/等的所有实例中共享,这不能用一个实例来完成,因为它会有多个父项。
答案 1 :(得分:1)
这是不可能的。您拥有的唯一选项是FieldModifier
,它可以使控件公开,而不是静态。
<RichTextBox x:Name="convBox" x:FieldModifier="public" Margin="29.333,26,39.333,95" VerticalScrollBarVisibility="Visible" />
答案 2 :(得分:1)
您可以在App.xaml中将其定义为资源。静态变量实际上只是全局变量,App.xaml中定义的资源实际上也只是全局变量。当然有各种不同。我不确定这会通过丰富的文本框实现什么,但会以某种方式回答您的问题。
答案 3 :(得分:1)
这是可能的,正如@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>
重要提示: 正如@ H.B.的回答中提到的,元素只能有一个父元素。以这种方式使用静态控件的结果是,如果静态控件当前正在一个视图中显示,然后显示包含静态控件的不同视图,则静态控件将从第一个视图中删除并添加到加载了最近的视图。