2012-03-18 20 views
1

は、XAMLは、私は、ユーザーコントロールを拡張する部分クラスを持っているUserControlクラスを使用してCanvasにTextBlockを追加する方法は?ここ

<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 

私はまたのTextBlockが私のUserControl内にあるときmyCanvasへのTextBlockのインスタンスを追加するにはどうすればよい

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

Card Card1 = new Card(); 

、このように、このコントロールを使用してテストフォームがありますか?だから、

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ではありません)であり、テンプレートが必要です。

Control内のTextBlockをmyCanvasに追加することはできません。

あなたはWPF UserControlsとカスタムコントロールで読んでいるようです。

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

は、その後、あなたが方法を介してキャンバスに追加したすべてのものを操作することができます。あなただけのシンプルなのTextBlockを作成して、キャンバスに、それを追加したい場合は

1

、あなたはこのような何かをしたいと思いますCanvas.Childrenで。

関連する問題