UWP - Resize SymbolIcon
The SymbolIcon class represents an icon that uses a glyph from the Segoe
MDL2 Assets font as its content. The SymbolIcon class’s Symbol property gets
or sets the Segoe MDL2 Assets glyph used as the icon content.
The following UWP application development tutorial code will demonstrate how we can use SymbolIcon in an application. Mainly we demonstrate how we can resize a SymbolIcon control. Firstly, we used the Viewbox control to resize a SymbolIcon control, we put the SymbolIcon as a child control of the Viewbox container. And secondly, we resize SysmbolIcon using the CompositeTransform class and UIElement class’s RenderTransform property.
The Viewbox class defines a content decorator that can stretch and scale a single child to fill the available space. The Viewbox class’s Stretch property gets or sets the Stretch mode, which determines how content fits into the available space. The Viewbox class’s StretchDirection property gets or sets the StretchDirection, which determines how scaling is applied to the contents of a Viewbox.
The UIElement class’s RenderTransform property gets or sets transform information that affects the rendering position of a UIElement. This property value is a Transform instance that describes the specifics of the desired render transform. The default value is null.
The Transform class defines functionality that enables transformations in a two-dimensional plane. The CompositeTransform class applies multiple transform operations to an object.
The CompositeTransform ScaleX property gets or sets the x-axis scale factor. The UWP developers can use this property to stretch or shrink an object horizontally. And the ScaleY property gets or sets the y-axis scale factor. This property is used to stretch or shrink an object vertically.
The following UWP application development tutorial code will demonstrate how we can use SymbolIcon in an application. Mainly we demonstrate how we can resize a SymbolIcon control. Firstly, we used the Viewbox control to resize a SymbolIcon control, we put the SymbolIcon as a child control of the Viewbox container. And secondly, we resize SysmbolIcon using the CompositeTransform class and UIElement class’s RenderTransform property.
The Viewbox class defines a content decorator that can stretch and scale a single child to fill the available space. The Viewbox class’s Stretch property gets or sets the Stretch mode, which determines how content fits into the available space. The Viewbox class’s StretchDirection property gets or sets the StretchDirection, which determines how scaling is applied to the contents of a Viewbox.
The UIElement class’s RenderTransform property gets or sets transform information that affects the rendering position of a UIElement. This property value is a Transform instance that describes the specifics of the desired render transform. The default value is null.
The Transform class defines functionality that enables transformations in a two-dimensional plane. The CompositeTransform class applies multiple transform operations to an object.
The CompositeTransform ScaleX property gets or sets the x-axis scale factor. The UWP developers can use this property to stretch or shrink an object horizontally. And the ScaleY property gets or sets the y-axis scale factor. This property is used to stretch or shrink an object vertically.
MainPage.xaml
<Page
x:Class="UniversalAppTutorials.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UniversalAppTutorials"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel
x:Name="StackPanel1"
Margin="50"
Orientation="Vertical"
Background="AliceBlue"
Padding="50"
>
<!--- Resize symbol icon using ViewBox in XAML -->
<Viewbox MaxWidth="175" MaxHeight="175">
<SymbolIcon Symbol="Copy" Foreground="ForestGreen"/>
</Viewbox>
<Viewbox MaxWidth="100" MaxHeight="100" Margin="5,5,5,50">
<SymbolIcon Symbol="Calculator" Foreground="HotPink"/>
</Viewbox>
<!--- Another way to resize symbol icon in XAML -->
<SymbolIcon
Symbol="Edit"
RenderTransformOrigin="0.5,0.5"
Foreground="Blue">
<SymbolIcon.RenderTransform>
<CompositeTransform ScaleX="5" ScaleY="5"/>
</SymbolIcon.RenderTransform>
</SymbolIcon>
</StackPanel>
</Page>
MainPage.xaml.cs
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml;
namespace UniversalAppTutorials
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
// Initialize a new Viewbox instance
Viewbox viewbox = new Viewbox();
// Set the Viewbox maximum width and height
// This will be the width and height of SymbolIcon
viewbox.MaxWidth = 200;
viewbox.MaxHeight = 200;
// Set the margin of Viewbox
viewbox.Margin = new Thickness(25);
// Initialize a new SymbolIcon instance
SymbolIcon symbolIcon = new SymbolIcon(Symbol.Clock);
// Put the SymbolIcon inside Viewbox
viewbox.Child = symbolIcon;
// Finally, put the Viewbox on stack panel
// Programmatically create and resize SymbolIcon
StackPanel1.Children.Add(viewbox);
}
}
}