ToolStripItem.ContentRectangle Property
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.
Gets the area where content, such as text and icons, can be placed within a ToolStripItem without overwriting background borders.
public:
property System::Drawing::Rectangle ContentRectangle { System::Drawing::Rectangle get(); };
[System.ComponentModel.Browsable(false)]
public System.Drawing.Rectangle ContentRectangle { get; }
[<System.ComponentModel.Browsable(false)>]
member this.ContentRectangle : System.Drawing.Rectangle
Public ReadOnly Property ContentRectangle As Rectangle
Property Value
A Rectangle containing four integers that represent the location and size of ToolStripItem contents, excluding its border.
- Attributes
Examples
The following code example demonstrates how to use the ContentRectangle property for custom rendering. This code example is part of a larger example provided for the ToolStripItem class.
// This utility method computes the layout of the
// RolloverItem control's image area and the text area.
// For brevity, only the following settings are
// supported:
//
// ToolStripTextDirection.Horizontal
// TextImageRelation.ImageBeforeText
// TextImageRelation.ImageBeforeText
//
// It would not be difficult to support vertical text
// directions and other image/text relationships.
private void ComputeImageAndTextLayout()
{
Rectangle cr = base.ContentRectangle;
Image img = base.Owner.ImageList.Images[base.ImageKey];
// Compute the center of the item's ContentRectangle.
int centerY = (cr.Height - img.Height) / 2;
// Find the dimensions of the image and the text
// areas of the item. The text occupies the space
// not filled by the image.
if (base.TextImageRelation == TextImageRelation.ImageBeforeText &&
base.TextDirection == ToolStripTextDirection.Horizontal)
{
imageRect = new Rectangle(
base.ContentRectangle.Left,
centerY,
base.Image.Width,
base.Image.Height);
textRect = new Rectangle(
imageRect.Width,
base.ContentRectangle.Top,
base.ContentRectangle.Width - imageRect.Width,
base.ContentRectangle.Height);
}
else if (base.TextImageRelation == TextImageRelation.TextBeforeImage &&
base.TextDirection == ToolStripTextDirection.Horizontal)
{
imageRect = new Rectangle(
base.ContentRectangle.Right - base.Image.Width,
centerY,
base.Image.Width,
base.Image.Height);
textRect = new Rectangle(
base.ContentRectangle.Left,
base.ContentRectangle.Top,
imageRect.X,
base.ContentRectangle.Bottom);
}
}
' This utility method computes the layout of the
' RolloverItem control's image area and the text area.
' For brevity, only the following settings are
' supported:
'
' ToolStripTextDirection.Horizontal
' TextImageRelation.ImageBeforeText
' TextImageRelation.ImageBeforeText
'
' It would not be difficult to support vertical text
' directions and other image/text relationships.
Private Sub ComputeImageAndTextLayout()
Dim cr As Rectangle = MyBase.ContentRectangle
Dim img As Image = MyBase.Owner.ImageList.Images(MyBase.ImageKey)
' Compute the center of the item's ContentRectangle.
Dim centerY As Integer = CInt((cr.Height - img.Height) / 2)
' Find the dimensions of the image and the text
' areas of the item. The text occupies the space
' not filled by the image.
If MyBase.TextImageRelation = _
TextImageRelation.ImageBeforeText AndAlso _
MyBase.TextDirection = ToolStripTextDirection.Horizontal Then
imageRect = New Rectangle( _
MyBase.ContentRectangle.Left, _
centerY, _
MyBase.Image.Width, _
MyBase.Image.Height)
textRect = New Rectangle( _
imageRect.Width, _
MyBase.ContentRectangle.Top, _
MyBase.ContentRectangle.Width - imageRect.Width, _
MyBase.ContentRectangle.Height)
ElseIf MyBase.TextImageRelation = _
TextImageRelation.TextBeforeImage AndAlso _
MyBase.TextDirection = ToolStripTextDirection.Horizontal Then
imageRect = New Rectangle( _
MyBase.ContentRectangle.Right - MyBase.Image.Width, _
centerY, _
MyBase.Image.Width, _
MyBase.Image.Height)
textRect = New Rectangle( _
MyBase.ContentRectangle.Left, _
MyBase.ContentRectangle.Top, _
imageRect.X, _
MyBase.ContentRectangle.Bottom)
End If
End Sub
End Class
Remarks
Use the ContentRectangle property to do custom painting of a ToolStripItem.
Applies to
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기