ITransformProvider.Resize(Double, Double) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wijzigt u het formaat van het besturingselement.
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
De nieuwe breedte van het venster, in pixels.
- height
- Double
De nieuwe hoogte van het venster, in pixels.
Uitzonderingen
Als de CanResize eigenschap onwaar is.
Voorbeelden
In het volgende voorbeeld ziet u een mogelijke implementatie van deze methode voor een aangepast besturingselement dat kan worden aangepast.
/// <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
Opmerkingen
Wanneer een besturingselement wordt aangeroepen dat gesplitste deelvensters ondersteunt, kan deze methode het neveneffect hebben van het wijzigen van het formaat van andere aaneengesloten deelvensters.
Een object kan niet zodanig worden verplaatst, aangepast of gedraaid dat de resulterende schermlocatie volledig buiten de coördinaten van de container valt en niet toegankelijk is voor het toetsenbord of de muis. Wanneer een venster op het hoogste niveau bijvoorbeeld volledig buiten het scherm wordt verplaatst of een onderliggend object buiten de grenzen van de viewport van de container wordt verplaatst. In deze gevallen wordt het object zo dicht mogelijk bij de aangevraagde schermcoördinaten geplaatst, waarbij de coördinaten boven of links worden overschreven om binnen de containergrenzen te vallen.