Wpf 默认复制模板上的MahApps Metro SplitButton错误

Wpf 默认复制模板上的MahApps Metro SplitButton错误,wpf,mahapps.metro,split-button,Wpf,Mahapps.metro,Split Button,在.Net Core 3.1中创建了空白WPF应用程序,添加了MahApps Metro包2.0.0。添加了简单的SplitButton并实现了简单的ViewModel来显示SplitButton中的项目。这个很好用 拆分按钮XAML代码: <MahApps:SplitButton Style="{DynamicResource SplitButtonStyle}" Name="BrowserList" MinWidth="

在.Net Core 3.1中创建了空白WPF应用程序,添加了MahApps Metro包2.0.0。添加了简单的SplitButton并实现了简单的ViewModel来显示SplitButton中的项目。这个很好用

拆分按钮XAML代码:

<MahApps:SplitButton Style="{DynamicResource SplitButtonStyle}" 
                Name="BrowserList"
                MinWidth="80"
                BorderThickness="1"
                BorderBrush="LightGray"
                MinHeight="31"
                Width="120"
                Margin="5,0,0,0"
                ItemsSource="{Binding BrowsersAll, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
                IsEnabled="true" >

                <MahApps:SplitButton.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
                                <TextBlock Margin="5,0,0,0" Text="{Binding FullName}"  VerticalAlignment="Center" />
                            </StackPanel>
                        </Grid>
                    </DataTemplate>
                </MahApps:SplitButton.ItemTemplate>
            </MahApps:SplitButton>
然而,当我试图编辑模板副本时,在不对模板进行任何更改的情况下,它会显示错误:

   at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
   at WpfApp8splitb.MainWindow.InitializeComponent() in C:\Projects\test\core\WpfApp8splitb\WpfApp8splitb\MainWindow.xaml:line 1
下面是异常错误:

ArgumentException: Must have non-null value for 'Setter.Property'.
链接到完整的解决方案文件(25.5Kb):


不必依赖Visual Studio来为您反编译模板,您只需执行以下操作即可

我相信VS在使用模板绑定的此类触发器时存在问题:

<Trigger SourceName="PART_Expander" Property="IsPressed" Value="True">
    <Setter TargetName="PART_Expander" Property="Foreground"
            Value="{Binding RelativeSource={RelativeSource TemplatedParent}, 
                Path=ArrowPressedBrush, Mode=OneWay}" />
</Trigger>

<Trigger SourceName="PART_Expander" Property="IsPressed" Value="True">
    <Setter TargetName="PART_Expander" Property="Foreground"
            Value="{Binding RelativeSource={RelativeSource TemplatedParent}, 
                Path=ArrowPressedBrush, Mode=OneWay}" />
</Trigger>