我希望 Width 属性动态扩展直到达到 150,在此之后,用户应该能够通过拖动进一步扩展它(MaxWidth 不允许这样做)。
Width="150*"
具有类似的功能,但方向相反(最小宽度并根据需要扩展)。我想要“按需扩展”和最大扩展宽度。
有什么方法可以使用 XAML 来完成吗?
您可以根据项目的大小以编程方式设置宽度。把宽度绑定到aGridLength
然后就可以让用户控制了,也可以自己控制最大150
private GridLength _marquee1Width = new GridLength(150, GridUnitType.Pixel);
您可以将其设置为GridUnitType.Pixel
, GridUnitType.Auto
, 或GridUnitType.Star
在您希望用户能够拖动的边缘上放置一条线。将该行上的 Cursor 属性设置为“SizeWE”,以便用户知道他可以拖动它。从该行开始,处理鼠标按下、鼠标移动和鼠标向上事件。在 MouseDown 中,从行控件调用 CaptureMouse() 并保存鼠标位置。在鼠标移动时,获取新的鼠标位置,计算从鼠标向下位置的变化,并将您约束的控件的宽度增加到 150,乘以鼠标向右移动的量,然后重置原始鼠标位置到当前鼠标位置。在 MouseUp 上,从线路控件调用 ReleaseMouse()。
希望这可以帮助。