c#wpf public static control

时间:2011-12-28 21:36:45

标签: c# wpf

在代码中,我创建了一个:

public static Button button1 = new Button();

并将其添加到 Canvas ,我可以在我的代码中的任何类中访问 Button ,但我无法弄清楚如何在 XAML

基本上我想在任何类中访问我的控件,如果我在代码中创建它们,我可以这样做,但不能在 XAML 中创建。

有解决方案吗?

3 个答案:

答案 0 :(得分:1)

使用以下课程:

public class TestClass
{
    public static System.Windows.Controls.Button GlobalButton {get; set;}

    static TestClass()
    {
        GlobalButton = new System.Windows.Controls.Button();
        GlobalButton.Content = "Button1";
    }
}

您可以使用以下 XAML

<Border Child="{x:Static MemberType=local:TestClass, Member=GlobalButton}" />

但是,我强烈建议你不要使用这种方法并找到另一种方法来做你想做的事。

答案 1 :(得分:0)

您只需在XAML中为控件指定一个x:name,然后在后面的代码中通过该名称访问它。如果你想从任何类访问它们,那么我不确定你能在XAML中做到这一点,因为XAML更多只是与单个代码相关联。如果您需要其他类来访问该控件,那么您需要将其作为后台代码中的属性公开。但是为什么你需要从另一个类访问UI控件?

答案 2 :(得分:0)

如果你需要从任何地方引用XAML中声明的对象,你可能不想看看这个界面:http://msdn.microsoft.com/en-us/library/system.xaml.ixamlnameresolver.aspx

使用此功能,您应该能够通过x:name

解析给定XAML名称范围内的任何对象