2011-11-09 8 views
-1

開始点と終了点が安定したままマウスで操作できるwpfでC#を使用して「弾力性のある」線を作成することはできますか?特に、以前にラインをキャプチャしたカーソルの移動に続いて、サイズを変更してその方向を変更するカーブを使用したいと思いますか?デスクトップアプリケーションのグラフィカルインターフェイスで頻繁に会うものです。マウスで線を操作する方法は?

manipulationDeltaクラスはそれに適していますか?私はhttp://msdn.microsoft.com/en-us/library/ee649090.aspxに記載されているもののようなものが欲しいが、マウス操作では触れない。

+0

短い答えの背後にあるコードだそう、多分あなたが試した何かあなたに実行しているどのような問題を説明しなければなりませんか?どのWPFクラスを使用するか尋ねていますか? – MerickOWA

+0

これは、マウスの左ボタンで最初に把握したマウスの移動でフォームを変更できる弾力性のある線(キャンバス上)を作成できるかどうかを最初に確認しています。私はクラスやイベントがあればそれを使うことができるかどうかを尋ねています。 – arjacsoh

答えて

0

はい、非常に可能です。

実際のアプリケーションでは、おそらく親指のためにいくつかのカスタムコントロールを使用して、ポジショニング&マウスをキャプチャして再利用できるようにします。

ここには、このようなものの基本的な例があります。

はここでXAML

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Canvas Name="myCanvas" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
    <Line Name="myLine" X1="100" Y1="100" X2="200" Y2="200" Stroke="Black" /> 
    <Ellipse Name="thumb1" Fill="Blue" Width="10" Height="10" Canvas.Left="95" Canvas.Top="95" Cursor="Hand" MouseLeftButtonDown="OnPoint1Down" MouseLeftButtonUp="OnPoint1Up" MouseMove="OnPoint1Move" /> 
    </Canvas> 
</Window> 

だし、ここに

public partial class MainWindow : Window { 
    public MainWindow() { 
     InitializeComponent(); 
     } 

    private void OnPoint1Down(object sender, MouseButtonEventArgs e) { 
     Mouse.Capture(thumb1); 
     } 

    private void OnPoint1Up(object sender, MouseButtonEventArgs e) { 
     Mouse.Capture(null); 
     } 

    private void OnPoint1Move(object sender, MouseEventArgs e) { 

     if (e.LeftButton == MouseButtonState.Pressed) { 

     var point = e.GetPosition(myCanvas); 

     myLine.X1 = point.X; 
     myLine.Y1 = point.Y; 

     Canvas.SetLeft(thumb1, point.X - thumb1.Width/2); 
     Canvas.SetTop(thumb1, point.Y - thumb1.Height/2); 
     } 
     } 
    } 
+0

それは私が欲しいものではありません。私は直線を望んではいないが、途中でマウスをつかんで、曲線を描くことができた曲線(または湾曲している線)は、終点が安定したままどの方向にも曲がり、 。 – arjacsoh

+0

@arjacsoh WPFのLineの代わりにPathを使うだけですが、アイデアは同じです。マウスを下に置いてマウスを動かすと、Shapeのポイントを調整します。 – MerickOWA

関連する問題