【发布时间】:2023-04-01 13:40:01
【问题描述】:
我有一个具有 Uri 类型属性的自定义控件。当我将此 Uri 设置为相对路径 "InterfaceImages/Wait.gif" 时,我希望它在我使用它打开该文件时转换为当前目录。预期的目录如下所示:
C:\Users\MyUsername\Documents\Visual Studio 2012\Projects\MySolution\MyProject\InterfaceGraphics\Wait.gif
但是,WPF 将其改造成:
//-->Note the lowercased filenames<--//
C:\Users\MyUsername\documents\visual studio 2012\Projects\MySolution\MyProject\bin\Debug\InterfaceGraphics\Wait.gif
导致应用程序抛出异常:“找不到路径'[path-shown-above]'的一部分。”
在我的代码中,我没有弄乱当前目录。那么它为什么要这样做呢?
我不知道这有多相关,但抛出它的函数调用是:
_gifDecoder = new GifBitmapDecoder(this.GifSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
其中this.GifSource 是System.Uri 类型的属性,创建项目和设置属性的XAML 如下所示:
<local:GifImage x:Name="WaitIcon" HorizontalAlignment="Center"
Height="100" VerticalAlignment="Center" Width="100"
MaxWidth="100" MaxHeight="100"
GifSource="InterfaceGraphics/Wait.gif"/>
【问题讨论】: