2011-11-09 3 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에서 선 대신 경로를 사용합니다. 그러나 아이디어는 동일하며 마우스를 아래로 가져 가서 마우스 이동시 모양의 점을 조정할 수있는 컨트롤을 만듭니다. – MerickOWA

관련 문제