WPF图片浏览器(显示大图、小图等)
时间: 2023-07-10 07:06:18 浏览: 75
可以使用WPF中的Image控件来实现图片浏览器,以下是一个简单的示例:
XAML代码:
```
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Image Viewer" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<WrapPanel Orientation="Horizontal">
<Button Content="Open" Click="Open_Click"/>
<Button Content="Zoom In" Click="ZoomIn_Click"/>
<Button Content="Zoom Out" Click="ZoomOut_Click"/>
<Button Content="Original Size" Click="OriginalSize_Click"/>
</WrapPanel>
<ScrollViewer Grid.Row="1" Name="scrollViewer">
<Image Name="image"/>
</ScrollViewer>
</Grid>
</Window>
```
C#代码:
```
public partial class MainWindow : Window
{
private double zoomLevel = 1.0;
public MainWindow()
{
InitializeComponent();
}
private void Open_Click(object sender, RoutedEventArgs e)
{
var openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Image files (*.jpg, *.jpeg, *.png)|*.jpg;*.jpeg;*.png";
if (openFileDialog.ShowDialog() == true)
{
BitmapImage bitmapImage = new BitmapImage(new Uri(openFileDialog.FileName));
image.Source = bitmapImage;
zoomLevel = 1.0;
UpdateImageSize();
}
}
private void ZoomIn_Click(object sender, RoutedEventArgs e)
{
zoomLevel *= 1.1;
UpdateImageSize();
}
private void ZoomOut_Click(object sender, RoutedEventArgs e)
{
zoomLevel /= 1.1;
UpdateImageSize();
}
private void OriginalSize_Click(object sender, RoutedEventArgs e)
{
zoomLevel = 1.0;
UpdateImageSize();
}
private void UpdateImageSize()
{
image.Width = image.Source.Width * zoomLevel;
image.Height = image.Source.Height * zoomLevel;
}
}
```
该示例使用了WrapPanel和四个Button来实现打开、放大、缩小和恢复图片原始大小的功能,使用了ScrollViewer来实现图片的滚动。通过UpdateImageSize()方法实现图片缩放功能。
阅读全文