我用Mike Swanson的illustrator to xaml converter将我的一些图像转换为xaml。 转换创建一个包含图像的视图框。这些视图框是我在程序中创建资源文件的。动态显示xaml资源?
下面的代码显示了我想要做的事情:我有一个viewmodel,它有一个名为PrimaryWinding的Windings类型的枚举变量。枚举值PrimD和PrimY在资源中选择相应的PrimD和PrimY xaml文件。
<UserControl.Resources>
<DataTemplate x:Key="PrimTrafo" DataType="{x:Type l:Windings}">
<Frame Source="{Binding}" x:Name="PART_Image" NavigationUIVisibility="Hidden">
<Frame.LayoutTransform>
<ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
</Frame.LayoutTransform>
</Frame>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="PrimD">
<Setter TargetName="PART_Image" Property="Source" Value="Resources\PrimD.xaml" />
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="PrimY">
<Setter TargetName="PART_Image" Property="Source" Value="Resources\PrimY.xaml" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</UserControl.Resources>
<!--The contentcontrol that holds the datatemplate defined above-->
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ContentControl Grid.Column="0" Content="{Binding PrimaryWinding}" ContentTemplate="{StaticResource PrimTrafo}"/>
</Grid>
此代码的工作。只有我无法将图纸大小调整为网格单元的大小。我添加了ScaleTransform类来调整图像大小。
是一个错误的类来持有图纸?
我应该使用ScaleTransform类来将绘图大小调整为单元格大小吗?我该如何动态地做到这一点?