Используя C #, вы можете перетащить холст в WPF? - PullRequest
0 голосов
/ 26 апреля 2010

Можете ли вы перетащить холст в 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' не является свойством Canvas (то есть "this.ParentCanvas.X"). Что я использую, чтобы установить позицию?

1 Ответ

1 голос
/ 26 апреля 2010

Чтобы установить положение элемента в пикселях, элемент должен содержаться на панели Canvas.

Затем вы можете позвонить Canvas.SetTop и Canvas.SetLeft.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...