【发布时间】:2013-03-17 12:12:48
【问题描述】:
我在 WPF 窗口中有一个默认的 Stretch 设置统一的图像,我正在尝试让它水平填充屏幕。我不希望使用不同的Stretch 设置,因为这应该是一种学习体验。正在加载的图像尺寸为420x800。这是窗口的 XAML..
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="Red" Height="1200" Width="840">
<Image Name="Image" Source="{Binding SourceUri}">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform x:Name="Scale" />
<TranslateTransform x:Name="Translate" />
</TransformGroup>
</Image.RenderTransform>
</Image>
</Window>
在代码隐藏中,我试图计算缩放以缩放图像以填充水平屏幕,并且我正在使用平移变换将其移动到屏幕中心。下面这段代码显然是错误的……
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace WpfApplication1 {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
DataContext = this;
double ImageWidth = 420;
Scale.ScaleX = Width / ImageWidth;
Translate.X = -(ImageWidth / 2);
}
public string SourceUri {
get {
return @"C:\Users\Roel\Desktop\test.png";
}
}
}
}
我试图了解拉伸和转换是如何协同工作的,但我对此有困难。我将不胜感激所有的见解,甚至是对详细解释的引用,因为我很难找到任何信息来源清楚而简洁地解释如何应用这些转换。
【问题讨论】: