Basic question on WPF, chaning zoom level like in VS.NET designer.

R

RealCat

Hello.
For the first time in my several years of C# coding, I'm actually
trying to learn WPF. I know that everything I see on the XAML is
vector-based. Since the most significant advantage of vector graphics
is that they can be scaled without loss of graphic quality, I'd like
to write an application whose entire window can be zoomed in and out
as the user wants (I always have been hated applications in small
windows...). Just like in the VS.NET designer. In VS.NET designer
there is a scaler at the top-left corner, and the entire window can be
zoomed in our out very easily.

So, if I want to change the zoom level (I don't know this is the
correct terminology) of my window at runtime, is there any quick and
easy way to do that? I don't mean changing the size of the window and
the layouts of the controls accordingly using some kind of layout
manager. I mean the complete zoom just like we can do in VS.NET
designer.

Thank you for reading.

PS : I cannot find a specific group for WPF, is there any?
 
C

Chris Jobson

RealCat said:
Hello.
For the first time in my several years of C# coding, I'm actually
trying to learn WPF. I know that everything I see on the XAML is
vector-based. Since the most significant advantage of vector graphics
is that they can be scaled without loss of graphic quality, I'd like
to write an application whose entire window can be zoomed in and out
as the user wants (I always have been hated applications in small
windows...). Just like in the VS.NET designer. In VS.NET designer
there is a scaler at the top-left corner, and the entire window can be
zoomed in our out very easily.

So, if I want to change the zoom level (I don't know this is the
correct terminology) of my window at runtime, is there any quick and
easy way to do that? I don't mean changing the size of the window and
the layouts of the controls accordingly using some kind of layout
manager. I mean the complete zoom just like we can do in VS.NET
designer.

Try something like:

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel Orientation="Vertical">
<Slider x:Name="zoom" Minimum="0.5" Maximum="2" Value="1" Width="150"
HorizontalAlignment="Left"/>
<Grid>
<Grid.LayoutTransform>
<ScaleTransform ScaleX="{Binding ElementName=zoom, Path=Value}"
ScaleY="{Binding ElementName=zoom, Path=Value}" />
</Grid.LayoutTransform>
<Button Margin="50" HorizontalAlignment="Left" Content="Press Me"/>
</Grid>
</StackPanel>
</Page>

Chris Jobson
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top