如何使用UserControl类将TextBlock添加到画布
本文关键字:添加 TextBlock 何使用 UserControl 类将 | 更新日期: 2023-09-27 18:28:23
这是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的实例,给它一些属性。。。那么我不确定。
感谢您的帮助。我也知道我应该使用用户控件,但我不知道为什么?
UserControl还应该有一个关联的XAML文件,并且TextBlock应该在该XAML中。
另一个选项是Card : Control
(而不是UserControl),然后您需要一个模板。
在这两种情况下,您都不能/应该尝试将控件内部的TextBlock添加到myCanvas中。
似乎您应该阅读WPF用户控件和自定义控件。
如果你只想创建一个简单的TextBlock并将其添加到画布中,你会想做这样的事情:
TextBlock textBlock = new TextBlock();
textBlock.Text = "Text";
myCanvas.Children.Add(textBlock);
然后,您可以通过Canvas.Children.中的方法操作添加到画布中的所有内容