2

C# コード (Xaml ではない) で WPF を使用して InkCanvas にテキスト (ラベルなど) を追加したいと思います。

どのように可能ですか?ありがとうジョナサン

4

4 に答える 4

2

このようなことができます。(SetTop、SetLeft については MSDN ドキュメントを参照してください)

// add control to children collection 
// (ctlToAdd can be TextBlock, RichTextBox, FlowDocument for example
inkCanvas.Children.Add(ctlToAdd);
InkCanvas.SetTop(ctlToAdd, 100.0);
InkCanvas.SetLeft(ctlToAdd,100.0);
于 2011-09-12T20:11:16.747 に答える
1
private void drawTextBox(object sender, MouseEventArgs e)  
{  
TextBox = new TextBox();  
myInkCanvas.Children.Add(myTextBox);  
myTextBox.Visibility = Visibility.Visible;  
Point mousePos = e.GetPosition(myInkCanvas);  
double left = Math.Min(mouseDownPos.X, mousePos.X);  
double top = Math.Min(mouseDownPos.Y, mousePos.Y);  
myTextBox.Width = Math.Abs(mouseDownPos.X - mousePos.X);  
myTextBox.Height = Math.Abs(mouseDownPos.Y - mousePos.Y);  
InkCanvas.SetLeft(myTextBox, left);  
InkCanvas.SetTop(myTextBox, top);  
}  

次の場所で mouseDownPos を取得できます。

private void myInkCanvas_PreviewMouseLeftButtonDown(objectsender,MouseButtonEventArgs){  
mouseDownPos = e.GetPosition(myInkCanvas);  
}

これは、プログラムで使用できる単純なコードです。

于 2012-03-23T16:02:37.870 に答える
0

通常の Children プロパティがあります: http://msdn.microsoft.com/en-us/library/system.windows.controls.inkcanvas.children.aspx

コード例については、例を確認してください

于 2009-09-30T15:12:37.170 に答える
0

カスタム Stroke クラスを実装し、同じものに Drawingcontext.DrawString メソッドを使用してみてください。

于 2010-08-14T11:52:14.507 に答える