方法: オブジェクトに複数の変換を適用する
この例では、TransformGroup を使用して、2 つ以上の Transform オブジェクトを 1 つの複合 Transform にグループ化する方法を示します。
例
次の例では、TransformGroup を使用して、ScaleTransform と RotateTransform を Button に適用します。
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<StackPanel Margin="50">
<Button
RenderTransformOrigin="0.5,0.5"
HorizontalAlignment="Center">Click
<Button.RenderTransform>
<!-- TransformGroup enables you to apply multiple transforms. In
this example, the button is scaled and rotated. -->
<TransformGroup>
<!-- Triple the size (scale) of the button in the Y direction. -->
<ScaleTransform ScaleY="3" />
<!-- Rotate the button by 45 degrees. -->
<RotateTransform Angle="45" />
</TransformGroup>
</Button.RenderTransform>
</Button>
</StackPanel>
</Page>
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace SDKSample
{
public partial class MultipleTransformsExample : Page
{
public MultipleTransformsExample()
{
// Create a Button that will have two transforms applied to it.
Button myButton = new Button();
myButton.Content = "Click";
// Set the center point of the transforms.
myButton.RenderTransformOrigin = new Point(0.5,0.5);
// Create a transform to scale the size of the button.
ScaleTransform myScaleTransform = new ScaleTransform();
// Set the transform to triple the scale in the Y direction.
myScaleTransform.ScaleY = 3;
// Create a transform to rotate the button
RotateTransform myRotateTransform = new RotateTransform();
// Set the rotation of the transform to 45 degrees.
myRotateTransform.Angle = 45;
// Create a TransformGroup to contain the transforms
// and add the transforms to it.
TransformGroup myTransformGroup = new TransformGroup();
myTransformGroup.Children.Add(myScaleTransform);
myTransformGroup.Children.Add(myRotateTransform);
// Associate the transforms to the button.
myButton.RenderTransform = myTransformGroup;
// Create a StackPanel which will contain the Button.
StackPanel myStackPanel = new StackPanel();
myStackPanel.Margin = new Thickness(50);
myStackPanel.Children.Add(myButton);
this.Content = myStackPanel;
}
}
}
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Namespace SDKSample
Partial Public Class MultipleTransformsExample
Inherits Page
Public Sub New()
' Create a Button that will have two transforms applied to it.
Dim myButton As New Button()
myButton.Content = "Click"
' Set the center point of the transforms.
myButton.RenderTransformOrigin = New Point(0.5,0.5)
' Create a transform to scale the size of the button.
Dim myScaleTransform As New ScaleTransform()
' Set the transform to triple the scale in the Y direction.
myScaleTransform.ScaleY = 3
' Create a transform to rotate the button
Dim myRotateTransform As New RotateTransform()
' Set the rotation of the transform to 45 degrees.
myRotateTransform.Angle = 45
' Create a TransformGroup to contain the transforms
' and add the transforms to it.
Dim myTransformGroup As New TransformGroup()
myTransformGroup.Children.Add(myScaleTransform)
myTransformGroup.Children.Add(myRotateTransform)
' Associate the transforms to the button.
myButton.RenderTransform = myTransformGroup
' Create a StackPanel which will contain the Button.
Dim myStackPanel As New StackPanel()
myStackPanel.Margin = New Thickness(50)
myStackPanel.Children.Add(myButton)
Me.Content = myStackPanel
End Sub
End Class
End Namespace
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback