2016-12-20 121 views
0
<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用的MouseLeftButtonDown拋出一個異常

<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

附加信息:'Set connectionId throw a exception。'行 數字'8'和行位置'14'。

內襯:

無法加載文件或程序集 'MahApps.Metro.IconPacks, 版本= 1.6.0.0,文化=中性公鑰=空' 或它 的一個依賴。一個強命名的程序集是必需的。 (異常來自HRESULT :0x80131044)

...只有當我有這個圖標的MouseLeftButtonDown屬性。

顯然我自己的程序集已簽名。我已經添加了'MahApps.Metro.IconPack'作爲NuGet包。不要告訴我你沒有簽署你的程序集?

如何解決這個問題?謝謝。

+0

https://github.com/MahApps/MahApps.Metro.IconPacks#strong-naming顯然有人認爲如果他們不簽署他們正在分發的程序集,這將是一個好主意! –

+0

是的,爲什麼這應該是默認值?只有一些特殊情況需要強大的命名/簽名dll,所以我決定不需要這些。 – punker76

+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

請注意,如果您設置寬度和高度,請單擊圖標外部我不會觸發事件