ITransformProvider.Resize(Double, Double) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
컨트롤의 크기를 조정합니다.
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)
매개 변수
- width
- Double
창의 새 너비(픽셀)입니다.
- height
- Double
창의 새 높이(픽셀)입니다.
예외
CanResize 속성이 false인 경우
예제
다음 예제에서는 크기를 조정할 수 있는 사용자 지정 컨트롤에 대 한이 메서드의 가능한 구현을 보여 줍니다.
/// <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
설명
컨트롤에서 호출 될 때 분할 창을 지 원하는,이 메서드가 다른 인접 한 창 크기 조정의 부작용이 있을 수 있습니다.
개체 이동, 크기를 조정 하거나 결과 화면 위치가 컨테이너의 및 키보드 또는 마우스에 액세스할 수 없도록 좌표 완전히 것 회전할 수 없습니다. 예를 들어, 최상위 창이 화면에서 완전히 벗어나거나 이동할 때 또는 자식 개체의 컨테이너의 뷰포트 경계 외부에 이동 됩니다. 이러한 경우 개체는 컨테이너 경계 내에 있도록 재정의 위쪽 또는 왼쪽 좌표를 사용 하 여 최대한 요청 된 화면 좌표를 가깝게 배치 됩니다.