private void Element_MouseMove(object sender, MouseEventArgs e)
{
if (isDragDropInEffect)
{
FrameworkElement currEle = sender as FrameworkElement;
double xPos = e.GetPosition(this).X - pos.X + currEle.Margin.Left;
double yPos = e.GetPosition(this).Y - pos.Y + currEle.Margin.Top;
currEle.Margin = new Thickness(xPos, xPos, 0, 0);
pos = e.GetPosition(null);
}
}
private void Element_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement fEle = sender as FrameworkElement;
isDragDropInEffect = true;
pos = e.GetPosition(null);
fEle.CaptureMouse();
fEle.Cursor = Cursors.Hand;
}
滑鼠移動控制元件, 控制元件跟不上滑鼠速度。而且最后滑鼠移動完所展現的不是在滑鼠停止位置。
uj5u.com熱心網友回復:
求助 !!!剛學沒多長時間 ,非常感謝uj5u.com熱心網友回復:
移動是用Thumb的。臨時寫的簡單例子前臺,加一個canvas,名字"MainBox
...............
Title="MainWindow" Height="450" Width="800">
<Grid>
<Canvas x:Name="MainBox"/>
</Grid>
</Window>
后臺
public MainWindow()
{
InitializeComponent();
Canvas Move_Box = new Canvas()
{
Width = 100,
Height = 100,
Background = Brushes.Green
};
Canvas.SetLeft(Move_Box, 10);
Canvas.SetTop(Move_Box,10);
MainBox.Children.Add(Move_Box);
Thumb thumb = new Thumb()
{
Width = 100,
Height = 100,
Opacity = 0
};
thumb.DragDelta += (s, e) =>
{
Canvas.SetLeft(Move_Box, Canvas.GetLeft(Move_Box) + e.HorizontalChange);
Canvas.SetTop(Move_Box, Canvas.GetTop(Move_Box) + e.VerticalChange);
};
Move_Box.Children.Add(thumb);
}
uj5u.com熱心網友回復:
我沒寫canvas 用的border 而且有網頁嵌入要寫在網頁前面。
uj5u.com熱心網友回復:
那你在Grid里面最外層放一個Canvas,再放Border、網頁什么的不就完了么。
不放Canvas,用XXX.SetValue(xx,xx);設定屬性一樣用
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/19463.html
標籤:C#
