【问题标题】:change a point's position with a slider?用滑块改变点的位置?
【发布时间】:2014-01-27 14:26:04
【问题描述】:

我是 c sharp 的新手,我的 wpf 项目有问题。 如何通过拖动滑块来更改点的位置? 我试过用这个但是没用

<Grid Name="myGrid">
    <Line Name="Sa"/>
    <Line Name="Sb"/>
    <Line Name="Oa"/>
    <Line Name="Ob"/>
    <Slider Name="Slid1" Margin="78,51,1002,332" IsDirectionReversed="False" IsMoveToPointEnabled="False" Maximum="100" Minimum="-100" IsEnabled="True" />
</Grid>

还有这些代码:

InitializeComponent();
Sa = new Line();
Sa.Stroke = System.Windows.Media.Brushes.Black;
Sa.X1 = Slid1.Value;
Sa.X2 = window.Width / 2;
Sa.Y1 = (window.Height) / 2;
Sa.Y2 = window.Height / 2 -50;

【问题讨论】:

    标签: c# wpf xaml slider wpf-controls


    【解决方案1】:

    如果要使用后面的代码,请使用下面的代码

    Sa.X1 = Slid1.Value;
    Sa.X2 = window.Width / 2;
    Sa.Y1 = (window.Height) / 2;
    Sa.Y2 = window.Height / 2 -50;
    

    Slider.ValueChanged 的事件处理程序中:-)

    【讨论】:

      【解决方案2】:

      问题是您将 Sa.X1 分配给 Slid1.Value 作为编译时常量值。 您必须为 slider.ValueChanged 事件实现一个监听器来刷新值。

      它应该看起来像:

      Slider.ValueChanged += new Eventlistener(RefreshPosition)

      RefreshPosition(对象发送者,ValueChangedEventargs args) { Sa.X1 = sender.value; }

      // 如果编译不通过,则需要将 sender 强制转换为滑块.. (e.g. 'sender as Slider')

      整个建议只是伪代码。您可能还想用属性封装 Sa.X1..

      编辑:更正事件名称(感谢 XAMIMAX)

      【讨论】:

        【解决方案3】:

        试试这个:

        public MainWindow()
        {
            InitializeComponent();
        
            Sa.Stroke = System.Windows.Media.Brushes.Black;
            Slid1.ValueChanged += Slid1_ValueChanged;           
        }
        
        void Slid1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {            
            Sa.X1 = slider.Value;
            Sa.X2 = window.Width / 2;
            Sa.Y1 = (window.Height) / 2;
            Sa.Y2 = window.Height / 2 - 50;
        }
        

        如果你这样做

        Sa = new Line();
        

        您正在创建 Line 的新实例。这只需要在java中自己做。在 C# 中,所有这些都由应用程序本身完成。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-06-04
          • 2022-01-23
          • 2018-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-16
          • 2011-09-17
          相关资源
          最近更新 更多