0

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


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

所以

我要么需要找出“当鼠标悬停在标签的边框上时如何将鼠标光标的形状更改为调整箭头的大小”或者要找到一种动态调整标签大小的新方法。

4

1 回答 1

1

更改光标是通过this.Cursor属性完成的。

我打开了文章中的代码,看看他们是怎么做的……

如果未OnMouseMove单击鼠标左键,则光标会更改:

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 内,如果是,他们会相应地更改光标...

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

于 2012-12-21T17:23:02.993 回答