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