我在问题的一部分偶然发现了两个例外。但是,我决定这一个比另一个更重要,这让我有点困惑,所以我将感谢任何帮助摆脱这个错误。
总之,我有一个显示给用户的用户控件,它包含TabControl
。对于每个TabItem
,我都添加了其他UserControls
。其中一个控件显示xaml资源以显示图像(将它们从SVG转换为xaml,因为常规的PNG/etc分辨率看起来不太好)。相同的资源在“原始”UserControl
上显示正常,并使用两个路径,并打包uri(这是同一个程序集)似乎在我需要的时候找到&显示资源。不幸的是,当i引用使用父UserControl
中的资源的UserControl
时,它抛出错误-**'* XDG 0062无法找到资源'global%20objects/pictures/user%20controls/icon. xaml '*'**以及祖父上的资源(原始)UserControl
,实际上成功使用了相同的资源。
调试代码后和重建期间,我没有得到错误,两者都没有中断,但它不断重复发生。
我试图显示最少的代码量的东西,实际上看起来是坏的。
图标:(Oracle)
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Stretch="Uniform"
x:Key="Icon">
<Canvas Name="svg16" Width="512.000000" Height="512.000000">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0"/>
</Canvas.RenderTransform>
<Canvas.Resources/>
<Canvas Name="g14">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0.100000" ScaleY="-0.100000"/>
<TranslateTransform X="0.000000" Y="512.000000"/>
</TransformGroup>
</Canvas.RenderTransform>
<Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="path12" Fill="DarkRed">
<Path.Data>
<PathGeometry Figures="M1440 4169 c-257 -30 -504 -120 -725 -266 -137 -91 -347 -301 -438 -438 -499 -756 -304 -1749 443 -2250 219 -147 462 -234 735 -265 121 -13 2089 -13 2210 0 561 63 1035 390 1282 885 263 525 224 1133 -104 1630 -91 137 -301 347 -438 438 -228 150 -466 236 -740 267 -111 12 -2117 11 -2225 -1z m2173 -574 c621 -94 1021 -708 856 -1316 -30 -113 -118 -282 -197 -379 -162 -200 -401 -336 -659 -375 -145 -22 -1961 -22 -2106 0 -263 40 -499 174 -663 379 -75 93 -164 266 -193 375 -65 239 -44 496 59 718 148 317 447 544 788 598 134 20 1977 21 2115 0z" FillRule="NonZero"/>
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>
祖父级UserControl:资源
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="\global objects\pictures\user controls\Icon.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
祖父级UserControl:TabControl这里我得到错误的第二个项目<local:ManualMatch/>
,但相同的图标显示为标题是好的。
<TabItem>
<TabItem.Header>
<StackPanel Width="auto"
Height="auto">
<ContentControl Content="{StaticResource Icon}"
Width="50"/>
</StackPanel>
</TabItem.Header>
<!--element not important-->
</TabItem>
<TabItem>
<local:ManualMatch Margin="0 20"/>
</TabItem>
父用户控件:ScrollViewer我在这里使用另一个引用相同图标资源的用户控件。上面写的错误在DataTemplate
处抛出。资源没有添加到这里,但我尝试了,没有任何帮助。
<ScrollViewer>
<ItemsControl ItemsSource="{Binding PossibleMatches}">
<DataTemplate>
<local:ManualMatchItem/>
</DataTemplate>
</ItemsControl>
</ScrollViewer>
孙级/最低用户控件:资源在这里我尝试了PackUri以及常规路径,两者都能正常工作并显示项目,但错误再次出现。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="\global objects\pictures\user controls\Icon.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
孙级/最低用户控件:ContentControl这也可以正常工作,并且如上所述,显示所有内容,但错误再次出现。
<StackPanel Orientation="Horizontal">
<ContentControl Content="{StaticResource Icon}"
Width="35"/>
</StackPanel>
1条答案
按热度按时间t1qtbnec1#
好吧,我找到了一个解决方案的例外,虽然根据建议,我也从
ViewBox
,Canvas
,Path
切换到DrawingBrush
和DrawingGroup
。虽然仍然不确定为什么会出现异常,但当我将Grand Child
UserControl
移到ResourceDictionary
时,错误被清除。我也忘记使用ItemsControl.ItemTemplate
,但添加它对错误没有影响。