3

我在获取要在页面上显示的矢量图像时遇到问题

这应该有效,不是吗?

<ContentControl>
    <ContentControl.Resources>
        <ResourceDictionary Source="./Assets/vectorImage.xaml"></ResourceDictionary>
    </ContentControl.Resources>
</ContentControl>

恐怕问题出在使用 Inkscape 从位图创建的 xaml 图像文件中。vectorImage.xaml 非常大(136KB),所以我不会复制整个文件,但它是这样开始的

<?xml version="1.0" encoding="UTF-8"?>
<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Stretch="Uniform">
<Canvas Name="svg2985" Width="126" Height="198">
    <Canvas.Resources/>
    ...

编辑:

<ResourceDictionary Source="./Assets/vectorImage.xaml"></ResourceDictionary>有红色下划线和提示:需要 ResourceDictionary 的继承者。

当我运行应用程序时,我得到以下异常

An exception of type 'Windows.UI.Xaml.Markup.XamlParseException' occurred in app.exe but was not handled in user code

WinRT information: Failed to assign to property 'Windows.UI.Xaml.ResourceDictionary.Source'. [Line: 134 Position: 68]

编辑:

我忘了提到的一件事是该项目是 Windows 商店应用程序

4

1 回答 1

3

1)分配x:Key给你的ViewBox,这很可能导致你的错误

<ViewBox x:Key="MySvgImage" ....>

2) 将资源至少移到 1 级以上ContentControl,例如到Window这样的资源:

<Window.Resources>
   <ResourceDictionary Source="./Assets/vectorImage.xaml"/>
</Window.Resources>

3)ContentControl像这样改变:

<ContentControl Content="{StaticResource MySvgImage}"/>

4)如果这真的是你的开始,vectorImage.xaml ResourceDictionary那么它应该像这样开始和结束:

<ResourceDictionary 
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Viewbox x:Key="MySvgImage">
      <Canvas Width="126" Height="198">
         ...
      </Canvas>
   </Viewbox>
</ResourceDictionary>
于 2013-05-31T10:15:29.650 回答