InkCanvas.SelectionResizing 事件

定义

在调整选定笔画和元素的大小之前发生。

public:
 event System::Windows::Controls::InkCanvasSelectionEditingEventHandler ^ SelectionResizing;
public event System.Windows.Controls.InkCanvasSelectionEditingEventHandler SelectionResizing;
member this.SelectionResizing : System.Windows.Controls.InkCanvasSelectionEditingEventHandler 
Public Custom Event SelectionResizing As InkCanvasSelectionEditingEventHandler 
Public Event SelectionResizing As InkCanvasSelectionEditingEventHandler 

事件类型

示例

以下示例阻止用户使所选内容小于其原始大小。

Rect selectionBounds;

// Don't allow the user to make the selection smaller than its original size.
void inkCanvas1_SelectionResizing(object sender, InkCanvasSelectionEditingEventArgs e)
{
    if (selectionBounds == null || selectionBounds.IsEmpty)
    {
        return;
    }

    double resizeHeight;
    double resizeWidth;

    // If the user made the height of the selection smaller, 
    // use the selection's original height.
    if (e.NewRectangle.Height < selectionBounds.Height)
    {
        resizeHeight = selectionBounds.Height;
    }
    else
    {
        resizeHeight = e.NewRectangle.Height;
    }

    // If the user made the width of the selection smaller, 
    // use the selection's original width.
    if (e.NewRectangle.Width < selectionBounds.Width)
    {
        resizeWidth = selectionBounds.Width;
    }
    else
    {
        resizeWidth = e.NewRectangle.Width;
    }

    // Create a the new rectangle with the appropriate width and height.
    e.NewRectangle = new Rect(e.NewRectangle.X, e.NewRectangle.Y, resizeWidth, resizeHeight);
}

// Keep track of the selection bounds.
void inkCanvas1_SelectionChanged(object sender, EventArgs e)
{
    selectionBounds = inkCanvas1.GetSelectionBounds();
}
Private selectionBounds As Rect

' Don't allow the user to make the selection smaller than its original size.
Private Sub inkCanvas1_SelectionResizing(ByVal sender As Object, ByVal e As InkCanvasSelectionEditingEventArgs)

    If selectionBounds.IsEmpty Then
        Return
    End If

    Dim resizeHeight As Double
    Dim resizeWidth As Double

    ' If the user made the height of the selection smaller, 
    ' use the selection's original height.
    If e.NewRectangle.Height < selectionBounds.Height Then
        resizeHeight = selectionBounds.Height
    Else
        resizeHeight = e.NewRectangle.Height
    End If

    ' If the user made the width of the selection smaller, 
    ' use the selection's original width.
    If e.NewRectangle.Width < selectionBounds.Width Then
        resizeWidth = selectionBounds.Width
    Else
        resizeWidth = e.NewRectangle.Width
    End If

    ' Create a the new rectangle with the appropriate width and height.
    e.NewRectangle = New Rect(e.NewRectangle.X, e.NewRectangle.Y, resizeWidth, resizeHeight)

End Sub


' Keep track of the selection bounds.
Private Sub inkCanvas1_SelectionChanged(ByVal sender As Object, ByVal e As EventArgs)

    selectionBounds = inkCanvas1.GetSelectionBounds()

End Sub

注解

此事件发生在用户请求调整所选笔划和/或元素的大小之后,但在应用更改之前。

事件处理程序接收类型 InkCanvasSelectionEditingEventArgs 为 的参数,该参数包含两个属性: OldRectangleNewRectangleOldRectangle 在重设大小操作之前定义所选内容的边界,并在 NewRectangle 调整大小操作后定义所选内容的边界。

使用新大小更新笔划和/或元素后, SelectionResized 将引发 事件。

适用于

另请参阅