我试图让我的文本标签拖动,其中文本浮动高于所有其他元素,当你从一个面板拖动到另一个在c#wpf应用程序。如何使用c#和wpf将标签从一个面板拖放到另一个面板?
我的标签从包含单词中的一个故事,像这样一个数组:
foreach (string word in lines)
{
Label myLabel = new Label();
myLabel.Content = word;
myLabel.Name = "lbl" + x;
myLabel.FontSize = 30;
myLabel.Margin = new Thickness(0, -10, 0, -10);
myLabel.FontFamily = new FontFamily("Segoe Print");
myLabel.MouseDown += new MouseButtonEventHandler(myLabel_MouseDown);
myLabel.MouseMove += new MouseEventHandler(myLabel_MouseMove);
myLabel.MouseLeftButtonUp += new MouseButtonEventHandler(myLabel_MouseLeftButtonUp);
myLabel.MouseUp += new MouseButtonEventHandler(myLabel_MouseUp);
leftPanel.Children.Add(myLabel);
myLabelWidth.Add(myLabel.ActualWidth);
x++;
}
在我的活动,我想弄清楚之外它包含面板变成另一个你会移动的标签。在wpf中,我甚至无法理解如何将标签位置设置为保持鼠标上的鼠标位置并移动。
我有一些东西,根本不能工作,但看起来是这样的:
void myLabel_MouseMove(object sender, MouseEventArgs s)
{
Label myLabel = sender as Label
if(e.LeftButton == MouseButtonState.Pressed)
{
myLabel.Left = e.GetPosition(this).X;
myLabel.Top= e.GetPosition(this).Y;
}
}
因为这是如此的遥远,我真的没有得到任何进一步。任何帮助表示赞赏。
谢谢。
RenderTransform看起来最像我想找的东西,但我无法弄清楚如何添加它与动态生成的标签一起工作的方式。 –
我添加了一个示例如何使用RenderTransform拖动标签。 – keft
谢谢,我有点慢,但感谢你的工作,我想我可以理解。再次感谢。 –