WPF中的嵌入的资源与Resource

4 篇文章 0 订阅
2 篇文章 0 订阅

WPF中的嵌入的资源与Resource

我们将资源文件添加至.net C#工程时,文件的生成操作有多种可选方式。通常用的多的是两种:[嵌入的资源]和[Resource],如果从需要从代码中使用这些资源文件,不同生成操作则对应不同的引用方式:

[嵌入的资源]

Assembly assembly = Assembly.GetAssembly(typeof(App));
var stream = assembly.GetManifestResourceStream("WpfApp1.Resources.XMLFile1.xml");

[Resource]

var uristr = "pack://application:,,,/WpfApp1;component/Resources/XMLFile2.xml";
var uri = new Uri(uristr, UriKind.RelativeOrAbsolute);
var stream = Application.GetResourceStream(uri).Stream;

实现示例:

[嵌入的资源]

string name = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + "."+fileName;
            System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
            System.IO.Stream stream = assembly.GetManifestResourceStream(name);

[Resource]

var uristr = "/Documents/"+ fileName; //file资源放在Documents文件夹下
            var uri = new Uri(uristr, UriKind.Relative);
            var stream = Application.GetResourceStream(uri).Stream;

注:在同一个程序集内部调用资源,可以省掉pack://application:,,,/WpfApp1;component

C# Uri

Uri表达式的一般形式为:协议+授权+路径
协议:pack://
授权:有两种。一种用于访问编译时已经知道的文件,用application:///
一种用于访问编译时不知道、运行时才知道的文件,用siteoforigin:///

一般用逗号代替斜杠,也就是改写作application:,,,pack:,,,
路径:分为绝对路径和相对路径。一般选用相对路径,普适性更强。

装载图片的两种方式,一种用XAML引用资源,一种用代码引用资源。

用XAML引用资源:

<Image Source="pack://application:,,,/images/my.jpg"/>

也可以这样

<Image Source="/images/my.jpg"/>

用代码引用资源:

Image img;
img.Source=new BitmapImage(new Uri("pack://application:,,,/images/my.jpg"),UriKind.Relative);

也可以直接使用代码中引用图片资源:

image2.Source = new BitmapImage(new Uri("/images/my.jpg", UriKind.Relative));

WPF 调用资源图片

imagePath = "pack://application:,,,/Solution;component/Properties/../images/star/my.jpg";
imageBrush.ImageSource = new BitmapImage(new Uri(imagePath, UriKind.RelativeOrAbsolute));

WPF引用外部项目资源的方法
WPF中如果你使用的资源文件不是本程序集的,是另外的程序集,就可以这样做:
1.引用要用的程序集,pack://application:,,,/程序集名称;component/路径 ,其中pack://application:,,,可以省略
示例:

<Image Source="pack://application:,,,/Skin;component/image/you.png" />

或者

<Image Source="/Skin;component/image/you.png" />

使用SiteOfOrigin

imgContent.Source = new BitmapImage(new Uri("pack://SiteOfOrigin:,,,/images/my.jpg"));

参考链接:
https://www.cnblogs.com/sntetwt/p/5402098.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在WPF窗口嵌入Midas窗口可以通过以下步骤来实现。 首先,确保你已经安装了.NET Framework 4.5或更高版本,因为Midas窗口在WPF使用了WebBrowser控件来呈现。然后,在XAML文件创建一个WebBrowser控件,例如: <WebBrowser Name="myWebBrowser" /> 然后,在代码文件找到窗口的初始化方法,例如Window_Loaded事件处理程序。在该方法,我们可以使用WebBrowser控件的Navigate方法来加载Midas窗口。例如,在桌面上创建一个名为"midas.html"的Midas文件,然后将其嵌入WPF窗口,可以使用以下代码: private void Window_Loaded(object sender, RoutedEventArgs e) { string filePath = "midas.html"; myWebBrowser.Navigate(new Uri(filePath, UriKind.Relative)); } 这将导航WebBrowser控件到指定的HTML文件,并在WPF窗口嵌入Midas窗口。 使用这个方法,你可以在WPF应用程序方便地嵌入Midas窗口,使用户能够与Midas窗口的内容进行交互。同时,你还可以通过调整WebBrowser控件的大小和位置来对Midas窗口进行布局。 需要注意的是,Midas窗口的内容可能受到安全限制,特别是如果你在WebBrowser控件加载外部网页。在这种情况下,你可能需要添加相应的权限来允许跨域访问或执行其他安全操作,以确保Midas窗口在WPF应用程序能够正常工作。 ### 回答2: 在WPF窗口嵌入Midas窗口,可以通过使用WindowsFormsHost控件实现。WindowsFormsHost控件是WPF的一个容器控件,可以在其嵌入WinForms控件。Midas窗口是一种基于ActiveX技术的跨平台窗口,允许在窗口嵌入并显示支持ActiveX控件的内容,例如Web浏览器、Office文档等。 首先,需要在WPF窗口的XAML文件添加WindowsFormsHost控件,作为嵌入Midas窗口的容器。例如: ```xml <Grid> <WindowsFormsHost Name="formsHost"></WindowsFormsHost> </Grid> ``` 然后,在WPF窗口的代码文件,可以通过以下步骤来嵌入Midas窗口: 1. 创建一个Midas窗口的实例,例如一个WebBrowser或其他支持ActiveX控件的控件。 2. 将Midas窗口的实例添加到WindowsFormsHost控件。 ```csharp using System.Windows.Forms; // 在窗口初始化时创建Midas窗口实例 private void Window_Loaded(object sender, RoutedEventArgs e) { // 创建Midas窗口实例,例如一个WebBrowser控件 WebBrowser webBrowser = new WebBrowser(); // 将Midas窗口实例添加到WindowsFormsHost控件 formsHost.Child = webBrowser; } ``` 通过以上步骤,就可以在WPF窗口嵌入Midas窗口。Midas窗口的内容将显示在WindowsFormsHost控件,可以根据需要进行布局和样式的调整。同时,还可以通过Midas窗口提供的属性和方法,实现对嵌入内容的操作和交互。 ### 回答3: 在WPF窗口嵌入MIDAS窗口的过程可以通过以下步骤实现: 1. 首先,确保已安装MIDAS(MiddleWare-based Intelligent Data Analytic System)并获取其相关组件和库文件。MIDAS是一种基于间件的智能数据分析系统,提供了各种数据分析和可视化功能。 2. 在WPF项目,创建一个新的WPF窗口,可以使用Visual Studio的WPF应用程序模板来创建。 3. 在WPF窗口的XAML代码,添加一个WindowsFormsHost控件,这是WPF与Windows Forms集成的桥梁。 4. 在WPF窗口的代码文件,引用WindowsFormsIntegration命名空间,并创建一个WindowsFormsHost对象的实例。 5. 实例化MIDAS窗口,并将其作为子控件添加到WindowsFormsHost控件。例如,可以使用类似以下代码的方式嵌入MIDAS窗口: ``` MIDASWindow midasWindow = new MIDASWindow(); windowsFormsHost.Child = midasWindow; ``` 6. 最后,将WindowsFormsHost控件添加到WPF窗口的布局的适当位置。 通过以上步骤,MIDAS窗口将被嵌入WPF窗口,并与WPF应用程序进行集成。可以根据需要对MIDAS窗口进行进一步的自定义和配置,以满足具体的数据分析和可视化需求。这种集成方式可以最大限度地利用WPF和MIDAS的功能,并为用户提供一流的用户体验和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值