我已自定义togglebutton
以在控制框中使用。但是当我在它上面盘旋时,它抛出了这个异常:
System.Windows.Markup.XamlParseException:''' System.Windows.Markup.StaticResourceHolder'抛出异常。'
内部异常:
'找不到名为' DefaultStyle'的资源。资源名称区分大小写。
这有点奇怪,因为在我的整个项目中没有任何名称或使用名称DefaultStyle
!
经过一番挖掘,我注意到错误延迟了,所以我记得这次我添加了tooltip
这似乎导致了问题,但我无法弄清楚原因!
这是XAML:
<Style x:Key="ToggleClose" TargetType="{x:Type ToggleButton}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid x:Name="_Container" Background="#00000000">
<ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Path x:Name="_Icon" SnapsToDevicePixels="True" ToolTip="Close window" Width="18" Height="18" Margin="0" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="Fill" Stroke="#4D4D4D" StrokeThickness="1" Data="M0,0 L1,1 M0,1 L1,0" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="_Container" Property="Background" Value="#80FF0000" />
<Setter TargetName="_Icon" Property="Stroke" Value="#2D2D2D" />
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="local:WindowBehaviours.Close" Value="True" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
编辑:
好的,异常似乎与任何tooltip
一起抛出,而不仅仅是togglebutton
,即使UI Debugging Tools for XAML
非常不寻常。
编辑2:
这些是我使用
的资源<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Objects/Customviewer.xaml"/>
<ResourceDictionary Source="Resources/Objects/CustomScroller.xaml"/>
<ResourceDictionary Source="Resources/Objects/CustomButtons.xaml"/>
<ResourceDictionary Source="Resources/Rooks/Alising.xaml"/>
<ResourceDictionary Source="Resources/Themes/VisualOne.xaml"/>
<ResourceDictionary Source="Resources/Themes/VisualDark.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
编辑3:
<Popup>
在抛出相同的异常时也遇到了同样的问题。
答案 0 :(得分:0)
它在我的地方工作得很好...我猜你在错过了什么&#39; DefaultStyle&#39;
XAML -
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Style/Styles.xaml"/>
<ResourceDictionary x:Name="DefaultStyle"
Source="Dictionary1.xaml">
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
您提到的任何XAML代码都在我的&#39; Dictionary1.xaml&#39; 然后我在...中使用它。
<ToggleButton Name="CloseButton" Style="{StaticResource ToggleClose}" Grid.Row="1" Grid.Column="1" />
还要检查你的Dictionary和WindowBehaviours类是否有错误。如果你还有问题,请告诉我。
答案 1 :(得分:0)
问题出在自动生成的资源文件本身内,它以某种方式损坏。删除并重新生成新文件即可解决该问题。