public void AddOscSwiperBtn(ChannelItem ch) { OscSwiperBtn oscSwiperBtn = new OscSwiperBtn("style_2"); oscSwiperBtn.Id = ch.Id; oscSwiperBtn.channelItem = ch; Binding binding = new Binding { Source = ch, Path = new PropertyPath("Color") }; oscSwiperBtn.SetBinding(OscSwiperBtn.colorProperty, binding); Binding binding1 = new Binding { Source = ch, Path = new PropertyPath("Name") }; oscSwiperBtn.SetBinding(OscSwiperBtn.textProperty, binding1); double val = (double)(ruler_y.ActualHeight / 2 - 10 - ch.Offset_Y); oscSwiperBtn.SetValue(Canvas.TopProperty, val); oscSwiperBtn.SetValue(Canvas.RightProperty, 0d); oscSwiperBtn.SetValue(OpacityProperty, 0.7d); //订阅事件 oscSwiperBtn.PreviewMouseDown += SwiperBtn_MouseDown; oscSwiperBtn.PreviewMouseMove += SwiperBtn_MouseMove; oscSwiperBtn.PreviewMouseUp += SwiperBtn_MouseUp; //添加到canvas中 this.SwiperCanvas_2.Children.Add(oscSwiperBtn); }
public void RemoveOscSwiperBtn(int id) { foreach (UIElement element in SwiperCanvas_2.Children) { OscSwiperBtn btn = (OscSwiperBtn)element; if (btn.Id == id) { SwiperCanvas_2.Children.Remove(btn); return; } } }
private void SwiperBtn_MouseDown(object sender, MouseButtonEventArgs e) { OscSwiperBtn btn = (OscSwiperBtn)sender; isMouseDownSwiperBtn = true; if (btn.Style == "style_1") { start_y = e.GetPosition(SwiperCanvas_1).X; first = (double)btn.GetValue(Canvas.LeftProperty); } else if (btn.Style == "style_2") { start_y = e.GetPosition(SwiperCanvas_2).Y; first = (double)btn.GetValue(Canvas.TopProperty); } }
private void SwiperBtn_MouseMove(object sender, MouseEventArgs e) { OscSwiperBtn btn = (OscSwiperBtn)sender; if (isMouseDownSwiperBtn) { if (btn.Style == "style_1") { end_y = e.GetPosition(SwiperCanvas_1).X; double val = first + (end_y - start_y); if (val < -10) { val = -10; } if (val > SwiperCanvas_1.ActualWidth - 20) { val = SwiperCanvas_1.ActualWidth - 20; } btn.SetValue(Canvas.LeftProperty, val); e.Handled = true; } else if (btn.Style == "style_2") { end_y = e.GetPosition(SwiperCanvas_2).Y; double val = first + (end_y - start_y); if (val < -10) { val = -10; } if (val > SwiperCanvas_2.ActualHeight - 20) { val = SwiperCanvas_2.ActualHeight - 20; } btn.channelItem.Offset_Y = ruler_y.ActualHeight / 2 - val - 10; btn.SetValue(Canvas.TopProperty, val); e.Handled = true; } } }