我在画布中有一个滑块控件,如下所示:
我将标签(放置在边框中)添加到画布。如何绑定此边框的位置,以便当滑块值沿其路径移动时,边框会正确移动并显示其值标签
有人可以帮忙吗?任何工作的想法将不胜感激。
答案 0 :(得分:2)
您必须管理包含标签的边框的左边距,并将其绑定到滑块的值。要将滑块值转换为适当的边距,您需要创建自定义转换器。请记住,没有“LeftMargin”属性,您必须从滑块的值创建一个新的边距并将其传递给边框:
在你的情况下,我建议你创建一个转换器并传递一些参数:顶部边界边缘(固定使其沿直线移动,也可以绑定到滑块的位置),最小和最大滑块值和滑块宽度为缩放到边距坐标。这不是微不足道的......
另一种方法是创建一个从滑块继承而且包含标签的新组件,但是你不会以这种方式避开转换器。
答案 1 :(得分:1)
我是用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);
}