我尝试使用Blend进行绘制(在示例代码中使用文件夹图像),但是我在编写它时遇到了一些麻烦。
基本上,我从Canvas控件开始,但图片的大小无法链接到父级的大小。
使用网格,图片可以自动调整大小,但所有路径都可以使用。最后,通过一些转换,最终结果是可以接受的,但是需要大量的计算才能获得良好的转换。
<Window x:Class="FolderVSG.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow">
<Grid Width="300" Height="300" HorizontalAlignment="Center" VerticalAlignment="Center">
<Path Data="M0,0L3,0 4,1 9,1 9,9 0,9z" Fill="#FF1878D8" Stretch="Fill" Stroke="Black" HorizontalAlignment="Center" VerticalAlignment="Center">
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0.89"/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Path.RenderTransform>
</Path>
<Path Data="M1,0L9,0 8,9 0,9z" Fill="#FF185ED8" Stretch="Fill" Stroke="Black" HorizontalAlignment="Center" VerticalAlignment="Center" RenderTransformOrigin="1,1">
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="0.8"/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Grid>
</Window>
也许这个问题是我的绘画方式,也许它有一个像画布一样的布局但是从最大X Y和最小X Y点调整大小。
答案 0 :(得分:1)
问题是缩放时路径是分离的还是独立的?这就是我读你的问题的方法。
如果是这种情况,请将您的路径添加到画布并使其看起来正确。然后将画布放在视图框中。视图框将统一为您缩放内容,以便您根据需要调整大小和移动。请记住,您的画布需要一个固定的大小才能使其正常工作。
<Viewbox>
<Canvas Width="30" Height="20">
<Path Data="..."/>
</Canvas>
</Viewbox>
如果这不是答案,请在您的问题中提供一些澄清,说明您遇到的困难。