此代码中存在循环依赖项:
<Style x:Key="BaseButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Margin" Value="5"/>
</Style>
这个样式表示它是针对TargetType按钮的,很好。
它还表示,它基于为TargetType按钮定义的样式,也就是它本身。
最好为前一个样式指定一个键,然后在basedon中使用该键。
编辑:
再次检查代码之后,您的样式和expressionlight.xaml中定义的样式之间似乎存在循环引用。解决方法是将资源放置在不同的级别。
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ExpressionLight.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.Resources>
<Style x:Key="BaseButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Margin" Value="5"/>
</Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource BaseButtonStyle}"/>
</Grid.Resources>
............
...........
...........
</Grid>