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>
以下是通过操作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>
相关文章推荐
- WPF下实现图片的放大缩小移动
- JS返回上一页实例代码通过图片和按钮分别实现
- jquery实现图片放大,缩小,翻转,旋转小实例
- WPF下实现图片的放大缩小移动
- jQuery实现图片放大,缩小,翻转,旋转小实例
- JS返回上一页实例代码通过图片和按钮分别实现
- 通过Java代码实现图片的放大和缩小
- 如何通过js实现图片预览功能【附实例代码】
- 通过Java代码实现图片的放大和缩小
- jquery实现图片放大,缩小,翻转,旋转小实例
- 图片的左右移动,js动画效果实现代码
- andriod 利用WebView实现 图片放大缩小以及移动[转]
- 通过绝对定位实现div重叠实例代码
- Jquery实现鼠标移动放大图片功能实例
- android 图片操作(缩放移动) 实例代码
- java通过模拟post方式提交表单实现图片上传功能实例
- c# .net中如何实现图片防盗链功能的代码实例
- (源码实例)通过层DIV实现,当鼠标放在链接上面,显示图片及文字 - 流星絮语 JAVA学习笔记 - CSDNBlog
- 原生JS,实现图片可拖拽,并且移动四个角和四条变能够自由变换图片大小
- Android通过手势实现图片按照指定路径移动