2010-04-25 70 views
0

你可以在WPF中拖動畫布嗎?你如何設定畫布的位置?以下是我走到這一步:使用C#,你可以在WPF中拖動一個畫布嗎?

/// XAML

<Window x:Class="TestApp.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Height="350" Width="525" 
     WindowStyle="None" ResizeMode="NoResize" AllowsTransparency="True" 
     Background="Transparent" Loaded="MainWindow_Loaded"> 


    <Canvas Name="ParentCanvas" Background="#FF6E798D"> 
    </Canvas> 
</Window> 

///代碼背後

public partial class MainWindow : Window 
{ 
    private Boolean isMouseCapture; 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    void MainWindow_Loaded(object sender, RoutedEventArgs e) 
    {    
     this.ParentCanvas.MouseLeftButtonDown += new MouseButtonEventHandler(_MouseLeftButtonDown); 
     this.ParentCanvas.MouseLeftButtonUp += new MouseButtonEventHandler(_MouseLeftButtonUp); 
     this.ParentCanvas.MouseMove += new MouseEventHandler(_MouseMove); 
    } 

    void _MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
    { 
     this.ParentCanvas.ReleaseMouseCapture(); 
     isMouseCapture = false; 
    } 

    void _MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
    { 
     this.ParentCanvas.CaptureMouse(); 
     isMouseCapture = true; 
    } 

    void _MouseMove(object sender, MouseEventArgs e) 
    { 
     if (isMouseCapture) 
     { 
      this.ParentCanvas.X= e.GetPosition(this).X; 
      this.ParentCanvas.Y = e.GetPosition(this).Y; 
     } 
    } 
} 

'X' 是不是畫布的屬性(即「this.ParentCanvas 。X」)。我用什麼來設置職位?

回答

1

要以像素爲單位設置元素的位置,該元素必須包含在Canvas面板中。您可以撥打Canvas.SetTopCanvas.SetLeft

相關問題