WPF-Xaml IconSource

WPF-Xaml IconSource

我试图在我的 XAML 文件中包含一个 IconSource,但在调试时,VS2013 抛出一个 "cannot locate..." 错误。我确定我在某个地方犯了一个愚蠢的错误,但我花了两天时间试图追踪它但无济于事。

XAML

<Window x:Class="TB_Icon.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:tb="http://www.hardcodet.net/taskbar"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <tb:TaskbarIcon
            IconSource=" /Codebank/Companion_Replacement/WPF_Taskbar/TB_Icon/TB_Icon/Resources/L1.ico"
            ToolTip="Click the item..."/>
    </Grid>
</Window>

目录结构 C:\Codebank\Companion_Replacement\WPF_Taskbar\TB_Icon\TB_Icon\L1.ico

VS 解决方案资源管理器 解决方案 TB_Icon TB_Icon 资源 L1.ico

您可以在 WPF 中使用 Pack URI

在这种情况下:pack://application:,,,/TB_Icon/TB_Icon/L1.ico

Pack URIs in WPF

Icon Url

路径的开头不能有 space。如果我在我的系统上测试 space,它会显示 cannot find c:\thing.ico,即使我将 thing.ico 直接放在 c:\ 它也找不到它。您要么需要像这样输入驱动器号(没有 space):

IconSource="C:/Codebank/Companion_Replacement/WPF_Taskbar/TB_Icon/TB_Icon/Resources/L1.ico"

或者把space去掉,把图标放在正确的相对路径下,比如:C:\Users\user\Documents\Visual Studio 2012\Projects\WpfApplication1\Codebank\Companion_Replacement\WPF_Taskbar\TB_Icon\TB_Icon\Resources\L1.ico,那么你应该可以输入IconSource="/Codebank/Companion_Replacement/WPF_Taskbar/TB_Icon/TB_Icon/Resources/L1.ico"(没有space)