2008-11-19 34 views
2

我正在研究一个简单的应用程序,开始学习WPF的方法。我在Microsoft Expression Design中创建了一个400px×400px的矢量图形,主要是因为我认为在更大的画布上创建它会更容易。如何在应用程序中放置/缩放XAML图形?

我已经将图像作为400px方形画布内的一系列对象导出到XAML文件。所有的子对象都是基于400px的画布定位的。

我想将图像放在我的应用程序窗口中,但缩小到100px x 100px,但我不知道如何做到这一点。作为矢量图像,简单缩放的概念看起来很简单,但我错过了一些东西。 Click-n-drag调整画布的大小,但不是内部的元素。迄今为止,互联网搜索的用处不大。

我只是想将图像放在我的窗口中......不是在按钮或任何特殊的东西中,并且可以轻松控制其大小。我是否需要将所有XAML复制到我的窗口的XAML中?我可以以某种方式引用XAML文件吗?如何用整体图像制作图像比例的元素?任何帮助,将不胜感激。

回答

3

复制并粘贴到你的XAML标记内

一种选择 - 当你将其粘贴到Expression Blend中,右键单击画布(左元素树),并更改布局网格。并给100 * 100的网格

第二选项 - 点击“分组进入”选项,并添加ViewBox,并调整ViewBox的大小。

+0

谢谢,将其分组到Viewbox中诀窍! – 2008-11-20 03:42:51

+0

谢谢,适合我! – EdwardM 2015-05-05 19:48:13

0

Blend UI可以帮助LOT进行WPF/Silverlight应用程序的这些转换。界面有点混乱。一旦将XAML复制并粘贴到您的或或您可以单击屏幕左侧的该项目。您将看到黄色的特定项目高亮显示。然后,您可以在属性面板中或使用鼠标执行各种缩放,移动等操作,只需确保您有正确的光标。

这是最棘手的部分。根据您将鼠标悬停在对象上的位置,不同的鼠标光标具有不同的效果。带有Plus的小型黑色指针是Render Transform Cursor,它可让您进行翻译(移动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; 
1

为了保持宽高比,在您的画布/网格/任何位置用Viewbox.Stretch =“Uniform”包装一个Viewbox。

相关问题