Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DragMove是如何工作的?(它会更改哪些属性?)_C#_Wpf - Fatal编程技术网

C# DragMove是如何工作的?(它会更改哪些属性?)

C# DragMove是如何工作的?(它会更改哪些属性?),c#,wpf,C#,Wpf,我正在用WPF制作一个简单的窗口(像Overwolf),在Overwolf中,屏幕左上角有一个圆,当你拖动它时,它会通过简单的动画移回角落。 因此,我尝试在LeftProperty上使用DoubleAnimation来实现相同的效果,但它只工作一次(第一次拖动它的工作时,第二次拖动它时,它就停留在拖动它的地方) 我的XAML: <Window x:Class="Overwoof.MainWindow" xmlns="http://schemas.microsoft.com/winf

我正在用WPF制作一个简单的窗口(像Overwolf),在Overwolf中,屏幕左上角有一个圆,当你拖动它时,它会通过简单的动画移回角落。 因此,我尝试在LeftProperty上使用DoubleAnimation来实现相同的效果,但它只工作一次(第一次拖动它的工作时,第二次拖动它时,它就停留在拖动它的地方)

我的XAML:

<Window x:Class="Overwoof.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow"
    Name="Main"
    Width="200" 
    Height="200" 
    AllowsTransparency="True" 
    WindowStyle='None' 
    IsHitTestVisible="True"
    Topmost="True"
    Background="Transparent"
    MouseLeftButtonUp="onDragLeave"
    WindowStartupLocation="Manual">
<Grid IsHitTestVisible="True" Name="mainGrid" MinHeight="200" MinWidth="200">
    <Ellipse MouseLeftButtonDown="DragStart" Name="logo" Width="100" Height="100" Fill="Red" Opacity="0.5" Margin="12,24,66,37" IsManipulationEnabled="True" />
</Grid>

Thx,BBLN.

da.To=-20
da.to-=20

这不是问题所在,我现在让它工作起来了。只需在DragMove之前添加“Main.BeginAnimation(Window.LeftProperty,null);”。(失败:D)
private void DragStart(object sender, MouseEventArgs e)
    {
        Main.DragMove();
    }

    private void onDragLeave(object sender, MouseEventArgs e)
    {
        DoubleAnimation da = new DoubleAnimation();
        da.From = Main.Left;
        da.To = -20;
        da.Duration = new Duration(TimeSpan.FromSeconds(0.2));
        da.Completed += new EventHandler(AnimationCompleted);
        Main.BeginAnimation(Window.LeftProperty, da);
    }