这是XAML ......
<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>
我有一个扩展userControl的部分类。
public partial class Card : UserControl
我还有一个使用此控件的测试表单,
public formTest()
{
InitializeComponent();
Card1.drawText();
myCanvas.Children.Add(Card1); //myCanvas is defined in XAML
}
Card Card1 = new Card();
当TextBlock在我的UserControl中时,如何将一个TextBlock实例添加到myCanvas?所以,让我们说,
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实例,给它一些属性......然后我不确定。
感谢任何帮助。我也知道我应该使用用户控件,但我不知道为什么?
答案 0 :(得分:1)
您的UserControl还应该关联一个XAML文件,TextBlock应该在该XAML中。
另一个选项是Card : Control
(不是UserControl),然后你需要一个模板。
在两个coase中都不能/应该尝试从Control中添加一个TextBlock到myCanvas。
似乎你应该阅读WPF UserControls和Custom Controls。
答案 1 :(得分:1)
如果您只想创建一个简单的TextBlock并将其添加到画布,您将需要执行以下操作:
TextBlock textBlock = new TextBlock();
textBlock.Text = "Text";
myCanvas.Children.Add(textBlock);
然后,您可以通过Canvas.Children中的方法操作您添加到Canvas的所有内容。