gpt4 book ai didi

c# - StaticResource 标记扩展与 System.Windows.Application.FindResource

转载 作者:行者123 更新时间:2023-11-30 18:44:06 26 4
gpt4 key购买 nike

我在我的 ResourceDictionary 中定义了一个 BitmapImage:

<BitmapImage x:Key="Skin_Image_Back" UriSource="./images/back.png" />

然后像那样加载 ResourceDictionary

var dict = Application.LoadComponent(
new Uri("TestProject.DefaultStyle;component/Style.xaml",
UriKind.Relative)) as ResourceDictionary;
Application.Current.Resources.MergedDictionaries.Add(dict);

当我通过 xaml 和静态资源标记扩展分配图像时

<Image Source="{StaticResource Skin_Image_Back}" />

一切正常。

但是当我想通过源设置图像时:

MyObject.ImageUrl = FindResource("Skin_Image_Back").ToString();

FindResource 返回一个 URI,这是 ToString 的结果

"pack://application:,,,/TestProject.DefaultStyle;component/images/back.png"

它通过转换器绑定(bind)

<Image Source="{Binding ImageURL, Converter={StaticResource StringToImageThumbSourceConverter}}" />

实现为

<Converter:StringToImageThumbSource x:Key="StringToImageThumbSourceConverter" />

  public class StringToImageThumbSource : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
try {
if(value != null) {
string s = value.ToString();
if(!string.IsNullOrEmpty(s) && File.Exists(s)) {
BitmapImage bi = new BitmapImage();

bi.CreateOptions = BitmapCreateOptions.DelayCreation;
bi.BeginInit();
if(parameter is int) {
bi.DecodePixelWidth = (int)parameter;
bi.DecodePixelHeight = (int)parameter;
}
bi.UriSource = new Uri(value.ToString());
bi.EndInit();
return bi;
}
}
} catch {
}
return null;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
throw new NotImplementedException();
}
}

那么它就不起作用了...但是为什么?

最佳答案

我他妈是不是傻了...

if(!string.IsNullOrEmpty(s) && File.Exists(s))

File.Exists 无法检查 pack://,,,-URL 的...所以它永远不会被评估...

认为我必须关闭问题...或删除它...不知道该怎么做...

关于c# - StaticResource 标记扩展与 System.Windows.Application.FindResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com