Как добавить TextBlock в Canvas с помощью класса UserControl? - PullRequest
1 голос
/ 19 марта 2012

вот 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 в myCanvas, когда TextBlock находится внутри моего UserControl?Скажем так:

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, присваиваю ему некоторые свойства ... тогда я не уверен.

Любая помощь приветствуется.Я также знаю, что должен использовать пользовательский элемент управления, но не знаю почему?

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Если вы просто хотите создать простой TextBlock и добавить его на холст, вам нужно сделать что-то вроде этого:

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

Затем вы можете манипулировать всем, что вы добавили в Canvas, с помощьюметоды в Canvas.Children.

1 голос
/ 19 марта 2012

Ваш UserControl также должен иметь связанный файл XAML, и TextBlock должен быть внутри этого XAML.

Другой вариант будет Card : Control (не UserControl), и тогда вам понадобится шаблон.

Ни в коем случае нельзя / нужно пытаться добавить TextBlock из элемента управления в myCanvas,

Похоже, вам следует ознакомиться с пользовательскими элементами управления WPF и пользовательскими элементами управления.

...