ITransformProvider.Resize(Double, Double) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Resizes the control.
public:
void Resize(double width, double height);
public void Resize (double width, double height);
abstract member Resize : double * double -> unit
Public Sub Resize (width As Double, height As Double)
Parameters
- width
- Double
The new width of the window, in pixels.
- height
- Double
The new height of the window, in pixels.
Exceptions
If the CanResize property is false.
Examples
The following example shows one possible implementation of this method for a custom control that can be resized.
/// <summary>
/// Resizes the provider to the specified height and width.
/// </summary>
/// <param name="height">The specified height.</param>
/// <param name="width">The specified width.</param>
void ITransformProvider.Resize(double width, double height)
{
if (!((ITransformProvider)this).CanResize)
throw new InvalidOperationException("Operation cannot be performed.");
if (width <= 0 | height <= 0)
throw new InvalidOperationException("Operation cannot be performed.");
int widthInt = (int)width;
int heightInt = (int)height;
// Resize should never be allowed to place a control outside the
// bounds of its container; the control should always be accessible
// using the keyboard or mouse.
// Use the bounds of the parent window to limit the placement
// of the custom control.
Size MaxSize =
new Size(this.customControl.formWidth - 20,
this.customControl.formHeight - 20);
Size MinSize = new Size(10, 10);
if (widthInt > MaxSize.Width)
widthInt = MaxSize.Width;
if (heightInt > MaxSize.Height)
heightInt = MaxSize.Height;
if (widthInt < MinSize.Width)
widthInt = MinSize.Width;
if (heightInt < MinSize.Height)
heightInt = MinSize.Height;
// Invoke control method on separate thread to avoid clashing with UI.
// Use anonymous method for simplicity.
this.customControl.Invoke(new MethodInvoker(delegate ()
{
this.customControl.Size = new Size(widthInt, heightInt);
}));
}
''' <summary>
''' Resizes the provider to the specified height and width.
''' </summary>
''' <param name="height">The specified height.</param>
''' <param name="width">The specified width.</param>
Private Sub Resize(ByVal width As Double, ByVal height As Double) Implements ITransformProvider.Resize
If Not(CType(Me, ITransformProvider)).CanResize Then
Throw New InvalidOperationException("Operation cannot be performed.")
End If
If width <= 0 Or height <= 0 Then
Throw New InvalidOperationException("Operation cannot be performed.")
End If
Dim widthInt As Integer = CInt(width)
Dim heightInt As Integer = CInt(height)
' Resize should never be allowed to place a control outside the
' bounds of its container; the control should always be accessible
' using the keyboard or mouse.
' Use the bounds of the parent window to limit the placement
' of the custom control.
Dim MaxSize As New Size(Me.customControl.formWidth - 20, Me.customControl.formHeight - 20)
Dim MinSize As New Size(10, 10)
If widthInt > MaxSize.Width Then
widthInt = MaxSize.Width
End If
If heightInt > MaxSize.Height Then
heightInt = MaxSize.Height
End If
If widthInt < MinSize.Width Then
widthInt = MinSize.Width
End If
If heightInt < MinSize.Height Then
heightInt = MinSize.Height
End If
' Invoke control method on separate thread to avoid clashing with UI.
' Use anonymous method for simplicity.
Me.customControl.Invoke(New MethodInvoker(Sub() Me.customControl.Size = New Size(widthInt, heightInt)))
End Sub
Remarks
When called on a control that supports split panes, this method can have the side effect of resizing other contiguous panes.
An object cannot be moved, resized, or rotated such that its resulting screen location would be completely outside the coordinates of its container and inaccessible to keyboard or mouse. For example, when a top-level window is moved completely off-screen or a child object is moved outside the boundaries of the container's viewport. In these cases the object is placed as close to the requested screen coordinates as possible with the top or left coordinates overridden to be within the container boundaries.
Applies to
See also
.NET