在WPF应用程序中,我想动态创建一个文本框,它将显示在应用程序前面,并且能够按像素自由设置其位置。 (文本框将跟随鼠标光标)。
这很容易在Winforms中动态完成,但是WPF让事情变得有些奇怪 - 因为我必须将控件添加为容器的子项。我知道这在Canvas上肯定是可行的,但我实际拥有的是一个dockpanel,左边是一个richtextbox,右边是一个datagrid。
那么我的选择是什么?我必须使用帆布吗?我可以使用dockpanel(或网格)来实现我想要的东西吗?
答案 0 :(得分:2)
您可以使用Canvas
或Grid
。如果您使用Canvas
,请设置Canvas.Left
属性和Canvas.Top
属性。如果您使用Grid
,则需要为TextBox
设置尺寸,将HorizontalAlignment
设置为Left
,将VerticalAlignment
设置为{{1} }}。要更改Top
的位置,请为TextBox
和MarginLeft
分配值。