您的位置:首页 > 编程语言

Wpf图片变换一:通过WPF实现图片的扩大、缩小、翻转、移动实例代码

2008-11-07 16:55 876 查看
Wpf提供了新颖的界面管理方式,而且提供了快捷的图片处理方法,使我们可以很轻松的增加高质量的用户界面体验,这几天工作中使用了其中的一小部分关于图像处理的技术,在这里与大家一起分享、学习:

以下是通过操作Transform类以实现对图片进行放大、缩小、翻转、移动的示例,它可以运用在所有继承自UIElement的对象上:

<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="图片扩大缩小移动" Height="300" Width="300" WindowState="Maximized">
<StackPanel>
<StackPanel.Background>
<LinearGradientBrush>
<GradientStop Color="White" Offset="0.5" />
<GradientStop Color="Black" Offset="1"/>
</LinearGradientBrush>
</StackPanel.Background>

<Label Content="ScaleX"></Label>
<ScrollBar Name="xscroll" Orientation="Horizontal" Value="1" Minimum="-20" Maximum="20"/>
<TextBlock HorizontalAlignment="Center" Margin="12" Text="{Binding ElementName=xscroll,Path=value}" />

<Label Content="ScaleY"></Label>
<ScrollBar Name="yscroll" Orientation="Horizontal" Value="1" Minimum="-20" Maximum="20"/>
<TextBlock HorizontalAlignment="Center" Margin="12" Text="{Binding ElementName=yscroll,Path=value}" />

<Label Content="CenterX"></Label>
<ScrollBar Name="xcenter" Orientation="Horizontal" Value="0" Minimum="-100" Maximum="100"/>
<TextBlock HorizontalAlignment="Center" Margin="12" Text="{Binding ElementName=xcenter,Path=value}" />

<Label Content="CenterY"></Label>
<ScrollBar Name="ycenter" Orientation="Horizontal" Value="0" Minimum="-100" Maximum="100"/>
<TextBlock HorizontalAlignment="Center" Margin="12" Text="{Binding ElementName=ycenter,Path=value}" />

<Canvas>
<Line X1="100" Y1="0" X2="100" Y2="1000" Stroke="Black" />
<Line X1="0" Y1="100" X2="1000" Y2="100" Stroke="Black" />

<Image Margin="40,49,38,63" Height="160" Width="280" Name="image1" Stretch="Fill" Source="/WpfApplication1;component/fl002.jpg">
<Image.RenderTransform>
<ScaleTransform
ScaleX="{Binding ElementName=xscroll,Path=Value}"
ScaleY="{Binding ElementName=yscroll,Path=Value}"
CenterX="{Binding ElementName=xcenter,Path=Value}"
CenterY="{Binding ElementName=ycenter,Path=Value}"
>

</ScaleTransform>
</Image.RenderTransform>
</Image>

<StackPanel>
<TextBlock Text="{Binding ElementName=btn,Path=Actualwidth}" />
<TextBlock Text="×" />
<TextBlock Text="{Binding ElementName=btn,Path=ActualHeight}" />
</StackPanel>
</Canvas>
<!--<Button Height="23" Name="button1" VerticalAlignment="Top" HorizontalAlignment="Left" Width="76" Click="button1_Click">Button</Button>-->

</StackPanel>
</Window>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: