在WPF中运行时调整TextBox的大小

只是想知道如何通过在WPF中拖动角来让用户在运行时调整TextBox控件的大小。 不太重要的是,用于调整所有控件大小的技术是否相同?

谢谢 :)

您应该尝试将文本框的对齐设置为拉伸并将其放置在可以resize的容器中,例如带有栅格分割器的网格(或在可resize的窗口中)。 它比尝试创建自定义可resize的文本框容易得多,并且它将更好地与您的布局的其余部分一起使用。

编辑:这是一个真实的应用程序示例:

...    ... 

tehMick的答案绝对正确:你绝对应该创建一个容器来进行resize而不是自定义TextBox本身。 如果它适用于你GridSplitter是一个非常好的开箱即用的解决方案。

我有相同的情况,但GridSplitter无法工作,所以我创建了一个“ResizeBorder”控件,它在四个角上处理鼠标拖动以在二维中resize,或者在两侧resize的中间位置。 这实际上是非常简单的代码:只需处理MouseDown,设置一个局部变量,给出MouseDown位置和侧面/角落被拖动,然后在MouseMove上更新大小。

我的ResizeBorder是可设计的,所以我只能在角落和侧面的线条上显示四个方框,或者我可以想象的更复杂的东西。

另外,请注意无论您使用的是Grid和GridSplitters还是ResizeBorder还是其他任何东西,您都可以选择将resizefunction放在控件周围,如下所示:

    

或者通过更新TextBox本身的ControlTemplate:

   ...   ...  

后一种方法的优点是你可以使用样式或附加属性来使TextBoxes可以resize,并且可以在代码中动态地更改TextBox的可调整性。