我在画布中有一个滑块控件,如下所示:
我在画布上添加了一个标签(放置在边框中)。如何绑定此边框的位置,以便当滑块值沿其路径移动时,边框正确移动并显示带有标签的值。
任何人都可以帮忙吗?任何工作想法将不胜感激。
您必须管理包含标签的边框的左边距,并将其绑定到滑块的值。要将滑块值转换为适当的边距,您需要创建一个自定义转换器。请记住,没有“LeftMargin”属性,您必须从滑块的值创建一个新边距并将其传递给边框:
在您的情况下,我建议您创建一个转换器并传递一些参数:顶部边框边距(固定,使其沿直线移动,也可以绑定到滑块的位置),最小和最大滑块值以及滑块的宽度以缩放到边距坐标。这不是微不足道的...
另一种方法是创建一个从滑块继承并包含标签的新组件,但您不会以这种方式避免转换器。
我是使用 C# 编码完成的。然而,它可能是更好的解决方案,但它对我有用。如果ValueChanged
出现滑块,我会编写这些代码。
private void year_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (this.yearInfo == null)
{
return;
}
Point position = Mouse.GetPosition(this.mapView); //mapView is the name of my canvas
this.yearInfo.Margin =
new Thickness(0, 0, position.X - this.yearInfo.ActualWidth / 2.0, 45);
}