2012-03-18 44 views
1

这里是XAML ...如何使用UserControl类将TextBlock添加到Canvas?

<Canvas Name="myCanvas"> 
    <TextBlock Name="myBlock" FontFamily="Arial Black" FontSize="100" Foreground="Red" Text="R" Height="105" Width="96" Canvas.Left="61" Canvas.Top="80"/
</Canvas> 

我有延伸的用户控件的部分类。

public partial class Card : UserControl 

我也有使用该控制这样的测试形式,

public formTest() 
{ 
    InitializeComponent(); 
    Card1.drawText(); 
    myCanvas.Children.Add(Card1); //myCanvas is defined in XAML 
} 

Card Card1 = new Card(); 

如何TextBlock中的一个实例添加到myCanvas当TextBlock的是我的用户里面?因此,可以说,

public partial class Card : UserControl 
{ 
    private TextBlock txtBlock = new TextBlock(); 
    public Card() 
    { 
    txtBlock.Text = "Test"; 
    txtBlock.Foreground = brushFill; 
    } 
    public void drawText() 
    { 
    //uhhh idk 
    } 
} 

总的来说,我不知道如何得到任何不显示在XAML定义它,然后通过代码添加属性。像这样我创建了一个TextBlock的实例,给它一些属性......然后我不确定。

任何帮助表示赞赏。我也知道我应该使用用户控件,但我不知道为什么?

回答

1

您的UserControl应该也有一个关联的XAML文件,并且TextBlock应该在该XAML内。

另一个选项是Card : Control(不是UserControl),然后你需要一个模板。

既不可以/你应该尝试添加一个TextBlock从一个Control到myCanvas。

似乎你应该阅读WPF用户控件和自定义控件。

1

如果你只是想创建一个简单的TextBlock并将其添加到画布上,你会想要做这样的事情:

TextBlock textBlock = new TextBlock(); 
textBlock.Text = "Text"; 
myCanvas.Children.Add(textBlock); 

然后,你可以操纵你已经通过方法添加到画布一切在帆布。儿童。

相关问题