none
WPF如何用RectangleGeometry在后台中绘制正方形??? RRS feed

答案

  • 谢谢您的回复,在鼠标移动的过程中绘制不同大小的正方形这个怎么做?不要把Rect的值固定死。

    同样的道理,我已经把怎样画一个固定大小的正方形告诉你了,那你说需要在鼠标移动的过程中动态画正方形,那么你就要想,画正方形的哪些值是你需要动态获取的,画正方形涉及到几个参数?4个参数,x,y 组成的一个坐标点,长和宽。

    那这4个参数哪里来?你就要去找有没有什么事件可以实现。比如说:MouseLeftButtonDown 事件。这个事件是当你按下鼠标左键的时候会触发的,那你在触发的事件处理方法里可以获取到当前鼠标的位置。那么还有一个MouseLeftButtonUp事件,这是在你放开鼠标左键的时候触发的,在这个事件处理方法里你是不是又可以获取到当前鼠标的位置,那最终通过两个坐标,你是不是可以计算出长和宽。之后是不是就很简单了。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年4月26日 6:57
    版主

全部回复

  • 你好 Marry_Xia,

    我写了个代码示例供你参考:

    <StackPanel x:Name="stackpanel">
            <Button Content="draw" Click="Button_Click"></Button>
        </StackPanel>
    private void Button_Click(object sender, RoutedEventArgs e)
            {
                RectangleGeometry myRectangleGeometry = new RectangleGeometry();
                myRectangleGeometry.Rect = new Rect(50, 50, 25, 25);
    
                Path myPath = new Path();
                myPath.Fill = Brushes.LemonChiffon;
                myPath.Stroke = Brushes.Black;
                myPath.StrokeThickness = 1;
                myPath.Data = myRectangleGeometry;
    
                stackpanel.Children.Add(myPath);
            }



    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年4月26日 3:13
    版主
  • 谢谢您的回复,在鼠标移动的过程中绘制不同大小的正方形这个怎么做?不要把Rect的值固定死。
    2018年4月26日 5:25
  • 谢谢您的回复,在鼠标移动的过程中绘制不同大小的正方形这个怎么做?不要把Rect的值固定死。

    同样的道理,我已经把怎样画一个固定大小的正方形告诉你了,那你说需要在鼠标移动的过程中动态画正方形,那么你就要想,画正方形的哪些值是你需要动态获取的,画正方形涉及到几个参数?4个参数,x,y 组成的一个坐标点,长和宽。

    那这4个参数哪里来?你就要去找有没有什么事件可以实现。比如说:MouseLeftButtonDown 事件。这个事件是当你按下鼠标左键的时候会触发的,那你在触发的事件处理方法里可以获取到当前鼠标的位置。那么还有一个MouseLeftButtonUp事件,这是在你放开鼠标左键的时候触发的,在这个事件处理方法里你是不是又可以获取到当前鼠标的位置,那最终通过两个坐标,你是不是可以计算出长和宽。之后是不是就很简单了。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年4月26日 6:57
    版主
  • 非常感谢,思路十分明确了。
    2018年5月17日 3:43