我在WPF窗口中使用默認的Stretch
設置「統一」,並且正在嘗試使其水平填充屏幕。我不希望使用不同的Stretch
設置,因爲這應該是一種學習體驗。正在加載的圖像尺寸是420x800
。這是窗口中的XAML ..使用WPF中的ScaleTransform進行水平圖像縮放
<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";
}
}
}
}
我試圖瞭解如何拉伸和轉換一起工作,但我有這方面的困難。我很感謝所有的見解,甚至參考了詳細的解釋,因爲我無法找到任何信息來源,清楚而簡潔地解釋如何應用轉換。
正如在問題中提到,這應該是我一個學習的過程,我打算使用的RenderTransform更復雜的問題着手。將轉換更改爲LayoutTransform完全破壞了這一點。 – 2013-03-17 13:23:11
那麼爲什麼不從一個更簡單的東西開始,可能是一個網格中心的固定大小的矩形。然後繼續應用縮放,平移和可能的旋轉。這絕對是直接的。 – Clemens 2013-03-17 15:48:39
您可能會在本文的MSDN文章中獲得有關WPF 2-D轉換的全面說明:[轉換概述](http://msdn.microsoft.com/zh-cn/library/ms750596.aspx)。 – Clemens 2013-03-17 16:17:16