如何在WPF应用程序内动态调整标签大小?

时间:2012-12-21 17:04:38

标签: wpf dynamic resize wpf-controls label

我需要知道如何在WPF应用程序中动态调整label的大小。


我已经找到了一个样本in this article,它已经同时实现了拖动和调整标签大小。 我挖掘了代码,为了简短起见,我发现在标签的OnMouseMove事件内部,它会检查鼠标光标的形状,如果它是Hand,它会进行拖动,如果是是resizing arrows中的任何一个,它会相应地调整大小。 看看这个。你会看到的。 在这个特定的例子中,当鼠标悬停在标签的边框上时,我无法找到光标形状如何变为resizing arrows

因此

我要么找出'如何在标签的边框' OR 上盘旋时更改鼠标光标形状以调整箭头大小以找到新的方法动态调整标签大小。

1 个答案:

答案 0 :(得分:1)

通过this.Cursor属性更改光标。

我在文章中打开了代码并看到了他们是如何做到的......

OnMouseMove中,如果鼠标左键是 NOT ,则光标会被更改:

Point currentLocation = e.MouseDevice.GetPosition(wnd);
       ......
       ......
const int dragHandleWidth = 3;

var bottomHandle = new Rect(0, height - dragHandleWidth, width, dragHandleWidth);
var rightHandle = new Rect(width - dragHandleWidth, 0, dragHandleWidth, height);

Point relativeLocation = wnd.TranslatePoint(currentLocation, this);

if (rightHandle.Contains(relativeLocation))
{
    this.Cursor = Cursors.SizeWE;
}
else if (bottomHandle.Contains(relativeLocation))
{
    this.Cursor = Cursors.SizeNS;
}
else
{
    this.Cursor = Cursors.Hand;
}

换句话说,他们检查当前鼠标位置是否在底部或右边框的3 px范围内,如果是,则相应地更改光标...

您可以轻松更改此逻辑以满足您的需求....