我正在开发一个简单的应用程序,开始学习WPF。我在400px到400px的Microsoft Expression Design中创建了一个矢量图形,主要是因为我认为在更大的画布上创建它会更容易。
我已将图像作为400px方形画布中的一系列对象导出到XAML文件中。所有子对象都基于400px画布定位。
我想将图像放在我的应用程序窗口中,但缩小到100px×100px,但我不知道该怎么做。作为矢量图像,简单缩放的概念看起来很简单,但我遗漏了一些东西。 Click-n-drag调整画布的大小,但不调整其中的元素。到目前为止,互联网搜索一直没有用处。
我只是想把图像放在我的窗口中...不是按钮或任何特殊的东西,并且可以轻松控制它的大小。我是否需要将所有XAML复制到我窗口的XAML中?我可以以某种方式引用XAML文件吗?如何使图像元素与整体图像一起缩放?任何帮助将不胜感激。
答案 0 :(得分:3)
将XAML复制并粘贴到代码
中一个选项 - 将其粘贴到Expression混合后,右键单击画布(左侧元素树)并将布局更改为网格。并给网格100 * 100
第二个选项 - 单击“Group Into”选项并添加ViewBox,并调整ViewBox的大小。
答案 1 :(得分:1)
为了保持宽高比,使用Viewbox.Stretch =“Uniform”包围Viewbox.Stretch =“Uniform”。
答案 2 :(得分:0)
Blend UI可以帮助很多人为WPF / Silverlight应用程序进行这些变换。用户界面有点令人困惑。将XAML复制并粘贴到您的或之后,您可以单击屏幕左侧的该项目。您将看到黄色的特定项目突出显示。然后你可以在属性面板中或使用鼠标进行各种比例,移动等,只需确保你有正确的光标。
这是最棘手的部分。根据您将鼠标悬停在对象上的位置,不同的鼠标光标会产生不同的效果。旁边有一个加号的小黑暗指针是渲染变换光标,它会让你翻译(移动x / y),缩放,旋转和偏斜。
如果您只是在Visual Studio中工作,可以使用以下代码向图像添加RenderTransoform。这将为您提供各种控制。只需调整任何变换,你就可以了。
dot = new Image();
BitmapImage dotSource = new BitmapImage();
dotSource.BeginInit();
string dotImageFile = String.Format("path/to/my/{0}.png", "image");
dotSource.UriSource = new Uri(@dotImageFile, UriKind.Relative);
dotSource.EndInit();
dot.Stretch = Stretch.None;
dot.Source = dotSource;
dot.RenderTransformOrigin = new Point(0.5, 0.5);
dotTransformGroup = new TransformGroup();
dotScaleTransform = new ScaleTransform(scaleX, scaleX);
dotSkewTransform = new SkewTransform();
dotRotateTransform = new RotateTransform();
dotTranslateTransform = new TranslateTransform();
dotTransformGroup.Children.Add(dotScaleTransform);
dotTransformGroup.Children.Add(dotSkewTransform);
dotTransformGroup.Children.Add(dotRotateTransform);
dotTransformGroup.Children.Add(dotTranslateTransform);
dot.RenderTransform = dotTransformGroup;