我在 WPF 窗口中有一个默认Stretch
设置为 Uniform 的图像,并且正在尝试使其水平填充屏幕。我不希望使用不同的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";
}
}
}
}
我试图了解拉伸和转换是如何协同工作的,但我对此有困难。我将不胜感激所有见解,甚至是对详细解释的引用,因为我很难找到任何信息来源,清楚而简洁地解释如何应用转换。