0

我在画布中有一个滑块控件,如下所示: 在此处输入图像描述

我在画布上添加了一个标签(放置在边框中)。如何绑定此边框的位置,以便当滑块值沿其路径移动时,边框正确移动并显示带有标签的值。

任何人都可以帮忙吗?任何工作想法将不胜感激。

4

2 回答 2

2

您必须管理包含标签的边框的左边距,并将其绑定到滑块的值。要将滑块值转换为适当的边距,您需要创建一个自定义转换器。请记住,没有“LeftMargin”属性,您必须从滑块的值创建一个新边距并将其传递给边框:

在您的情况下,我建议您创建一个转换器并传递一些参数:顶部边框边距(固定,使其沿直线移动,也可以绑定到滑块的位置),最小和最大滑块值以及滑块的宽度以缩放到边距坐标。这不是微不足道的...

另一种方法是创建一个从滑块继承并包含标签的新组件,但您不会以这种方式避免转换器。

于 2013-01-27T11:54:58.623 回答
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);
}
于 2013-01-27T12:02:52.587 回答