TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

WPF RenderTransform Example: TransformGroup

This WPF article uses the RenderTransform and TransformGroup elements. It scales, skews and rotates a Button control.

RenderTransform. Controls in WPF support graphical transformations.

We can scale, skew, rotate and translate controls. We use the RenderTransform element. For a Button, we specify a Button.RenderTransform and a TransformGroup.

Button

Example. To begin, please drag a Button control to the WPF window. Now, attempt to rotate the Button in Visual Studio: click on a corner and drag it in the direction you want to rotate. Visual Studio will insert a Button.RenderTransform element.

Visual Studio

ScaleTransform: This is the first element within the TransformGroup element. It scales (makes bigger or smaller) the X and Y dimensions.

SkewTransform: Skewing an element causes it to lose its original shape. It distorts the element. We set AngleX to 30.

RotateTransform: This rotates the element. We specify a 35-degree rotation of the Button control.

TranslateTransform: This changes the location of the control. We move it 50 pixels to the right (X) and 80 pixels downward (Y).

Based on:

.NET 4.5

Example markup: XAML

<Window x:Class="WpfApplication24.MainWindow"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	Title="MainWindow" Height="350" Width="525">
    <Grid>
	<Button Content="Example"
		HorizontalAlignment="Left"
		Margin="0"
		VerticalAlignment="Top"
		Width="75"
		Background="Salmon"
		Foreground="White"
		RenderTransformOrigin="0.5,0.5">
	    <Button.RenderTransform>
		<TransformGroup>
		    <ScaleTransform ScaleX="2" ScaleY="2"/>
		    <SkewTransform AngleX="30" AngleY="0"/>
		    <RotateTransform Angle="35"/>
		    <TranslateTransform X="50" Y="80"/>
		</TransformGroup>
	    </Button.RenderTransform>
	</Button>
    </Grid>
</Window>

The screenshot at the top shows the output of this XAML. The button, salmon-colored with white text, is rotated and skewed and scaled. This makes it almost unusable in a real program.

Summary. Any WPF control can be transformed in this way. But in many programs, these transformations are not helpful. No one wants to read a DataGrid that is rotated or skewed. It is best to be careful and apply transformations only as needed.

DataGrid


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf