带有MouseLeftButtonDown的iconPack会引发异常

时间:2016-12-20 09:06:29

标签: mahapps.metro

<UserControl x:Class="XXX.Apps.UI.Wpf.UserControls.AccountTile"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:XXX.Apps.UI.Wpf.UserControls"
             xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
             xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
             mc:Ignorable="d">

...

<iconPacks:PackIconModern Grid.Column="1" Grid.Row="1" Height="12" Kind="Delete" MouseLeftButtonDown="deleteIcon_Click" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" />

给了我

  

抛出异常:'System.Windows.Markup.XamlParseException'中   PresentationFramework.dll

     

其他信息:'设置connectionId引发异常。'线   数字'8'和行位置'14'。

  

无法加载文件或程序集'MahApps.Metro.IconPacks,   Version = 1.6.0.0,Culture = neutral,PublicKeyToken = null'或其中一个   依赖。需要一个强名称的程序集。 (例外   HRESULT:0x80131044)

...仅当我在图标上有MouseLeftButtonDown属性时才会显示。

显然我自己的集会已签署。我已将'MahApps.Metro.IconPacks'添加为NuGet包。不要告诉我你没有签署你的集会吗?

如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:0)

由于图标包没有强签名,您可以尝试使用它:

<Button Content="{iconPacks:PackIconModern Delete, Width=12, Height=12}" Width="12" Height="12" Style="{StaticResource IconButtonStyle}" Click="deleteIcon_Click" />

这就是风格:

<Style x:Key="IconButtonStyle" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid Background="Transparent" VerticalAlignment="Center" HorizontalAlignment="Center">
                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

输出

Output

请注意,如果您设置宽度和高度,则单击图标外部不会触发事件