WPF里怎么在XAML里用URL设置image的sourse属性呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF里怎么在XAML里用URL设置image的sourse属性呢?相关的知识,希望对你有一定的参考价值。

我只会在后台设置:this.image_text.Source = new BitmapImage(new Uri("pack://SiteOfOrigin:,,,/image/111111.jpg"));

我想要的是把<Image Source="C:\Users\leaf\Desktop\林宥嘉.jpg"></Image>里的绝对路径换为相对路径

参考技术A 按照你上面的后台设置路径,可以这样写代码:
<Image Source="pack://SiteOfOrigin:,,,/image/111111.jpg">本回答被提问者和网友采纳
参考技术B 相对路径可以直接用啊,"image/111111.jpg"就可以了的。。。 参考技术C 不明白,怎么个相对路径?

WPF中怎样设置ctrl或shift+字母键为快捷键啊?

我想在WPF中设置快捷键,比如ctrl+Enter,shif+D。请高手们帮忙啊......

没有直接在 xaml 设定的办法.

但是可以写一个通用类, 以扩展的附加属性附加到所有的 UIElement. (已经写好了, 但不贴出来了, 留点思考). 但给个大概的.

先说写好这个类后, 在 xaml 中如何对 UIElement 设置快捷键.
假定这个类叫 MyHotKeyClass, 在命名空间 WPFApp1 上.
下面是一份 xaml 档, Window 为根元素, 包含一个 StackPanel, 而 StackPanel 有 Button, Image 两个子元素, 现在对 Button 设置快捷键 为 Ctrl + F, 对应 Click 事件; 对 Image 设置快捷键为 Shift + D, 对应 MouseLeftButtonDown 事件:
首先在 Window 引用 xmlns
<Window ...
xmlns:sk="clr-namespace:WPFApp1"
...>
<StackPanel>
<Button Content="Button"
sk:MyHotKeyClass.AccessKey="F"
sk:MyHotKeyClass.ModifierKey="Control"
sk:MyHotKeyClass.RoutedEvent="x:Static Button.ClickEvent"
Click="Button_Click"
/>
<Image Source="C:\wpf.jpg" Stretch="None"
sk:MyHotKeyClass.AccessKey="D"
sk:MyHotKeyClass.ModifierKey="Shift"
sk:MyHotKeyClass.RoutedEvent="x:Static Image.MouseLeftButtonDownEvent"
MouseLeftButtonDown="Image_MouseLeftButtonDown"
/>
</StackPanel>
</Window>

只是写一个类, 然后 就可以在各个 xaml 引用了, 非常简单.
但如何编写这个 MyHotKeyClass 呢?

首先, 它是一个普通类, (有些网站说非要从 DependencyObject 衍生, 其实不是必须的), 从上面设置可以看出, 它至少有三个 附加属性 (DependencyProperty): AccessKey, ModifierKey, RoutedEvent.
于是有了下面这个类的结构:
namespace WPFApp1

public class MyHotKeyClass

// 设置一个 AccessKey 的附加属性
public static readonly DependencyProperty AccessKeyProperty
= DependencyProperty.RegisterAttached("AccessKey", typeof(Key), typeof(MyHotKeyClass), new UIPropertyMetadata(...));
public static Key GetAccessKey(DependencyObject source)

...
return (Key)source.GetValue(AccessKeyProperty);

public static void SetAccessKey(DependencyObject source, Key value)

...
source.SetValue(AccessKeyProperty, value);


// 其余两个 ModifierKey 和 RoutedEvent 对应的元数据类型分别是
// typeof(ModifierKeys) 和 typeof(RoutedEvent)
// 详细的就不写了, 和第一个 AccessKey 的定法基本上一致.



最后测试这个类的工作, 在 Window 对应的类下写好按钮 Click 事件:
... Button_Click(...)

MessageBox.Show("Button was clicked");

... Image_MouseLeftButtonDown(...)

...

当按下 Ctrl + F 时, 就相当于点击了按钮, 当按下 Shift + D 时就相当于在 Image 控件上点了鼠标左键.

-------- END ----
关键点是 写好 DependencyProperty.
Good Luck
参考技术A

给你一段给button绑定Ctrl+V键的代码,如附件,

以上是关于WPF里怎么在XAML里用URL设置image的sourse属性呢?的主要内容,如果未能解决你的问题,请参考以下文章

在线等!怎么在wpf中利用后台的代码给定位置,大小和source,创建image,并在界面显示出来。

WPF 绑定

用VS2012写的一个WPF程序怎么打包放到别人电脑里用,程序和MySQL数据库有交互?

C# WPF中xaml怎么调用.cs中的数据?反过来怎么调用?

WPF ----在UserControl的xaml里绑定依赖属性

WPF 封装 图片resource的问题 c#