【发布时间】:2019-02-19 00:21:22
【问题描述】:
我正在尝试从我的硬盘驱动器(不是项目文件夹)动态加载图像。当我硬编码路径时,图像加载得很好:
<Border>
<Border.Background>
<ImageBrush ImageSource="C:\Program Files\my program\Working Assets\Logos\background.jpg" />
</Border.Background>
但是,当我尝试动态加载图像时,找不到路径。
c#文件:
public static string BACKGROUND_IMAGE_PATH = "C:\\Program Files\\my program\\Working Assets\\Logos\\background.jpg";
xaml:
xmlns:localVariables="clr-namespace:my_namespace.StaticResources">
<Border BorderBrush="{Binding ColorsBo.BorderColor, FallbackValue='Black'}">
<Border.Background>
<ImageBrush ImageSource="{x:Static localVariables:VC.BACKGROUND_IMAGE_PATH}" />
</Border.Background>
当我查看日志并复制编译器说它找不到的路径时,它会将我直接带到资源。有谁知道为什么我尝试动态加载资源时找不到资源?
【问题讨论】:
-
不确定是否可以尝试将“\”替换为“\\”,因为这可能是一个字符问题,也请说明您如何在动态示例中填充变量
-
第一个 xaml 代码片段按预期工作。在第二个中,我使用双斜杠,否则 c# 文件将无法编译。 VC.BACKGROUND... 的路径带有双斜杠。
-
请告诉我们你是如何初始化这个 VC.BACKGROUND_IMAGE_PATH
-
@DenisSchaf - 我编辑了这个问题。
-
即使你在 xaml 中的 ImageSource 中输入了一个字符串(文件的路径),它实际上也不是一个字符串 ItemsSource 需要是一个 ImageSource 类型