Ⅰ wpf中用什么控件来选择文件夹
比如你定义了两个window在wpf同一个Project里,window1里有个name="abc"的Grid,window2的后台要用这个abc的话,首先得实例化window1。Window1 win1 =new window1(); 然后就可以调用了。win1.abc
Ⅱ WPF,资源文件是放在哪个文件夹的
1Addedfolders:Creategroups如果资源文件是目录的话,为资源文件创建组。当拖动一个包含资源文件的目录到项目中时,选择这个条目之后,在代码中引用资源文件就只需要直接写资源文件的路径,不用加上目录了。备注:在Xcode项目中,文件夹有两种颜色:黄色和蓝色。黄色代表的组,表明在项目文件中并没有实质性的文件夹,代码中可以直接通过文件名来获取资源。蓝色代表实体文件夹,表明在项目中存在着实质性的文件夹,代码中则需要通过深入目录来获取到资源文件。11Addedfolders:CreateFolderreference和上面的group选项相反,当拖动的是一个包含资源文件的目录时,会创建实质性的目录(显示为蓝色),代码中需要使用资源文件的时候路径必须带上目录。例子:如果项目文件中有个实体目录test/test1.h,在Xcode中test目录显示为蓝色,那么则需要#include“test/test1.h”;如果味黄色,之需要test1.h就可以了。
Ⅲ WPF如何获取和设置应用程序范围的资源
存储在 Resources 中的资源可以从在应用程序的 Application 对象 范围内执行的任何代码(即,可访问 Current 的代码)中获得。 另外,还可在资源查找路径中使用 Resources。 Resources 是从标记和代码中都可以设置的键/值对字典,如下所示:// Set an application-scope resource
Application.Current.Resources["ApplicationScopeResource"] =
Brushes.White; XAML:
使用代码获取资源: Brush whiteBrush = (Brush)Application.Current.Resources["ApplicationScopeResource"]; 当使用 Resources 时有两个注意事项。 首先,字典的 键 是一个对象,因此设置和获取属性值时需要准确使用相同的对象实例(请注意:使用字符串键时该键区分大小写)。 其次,字典的 值 是一个对象,因此获取属性值时需要将该值转换成需要的类型。
Ⅳ wpf 获取项目下文件夹路径
需求不太明确,开发期间与发布后的目录有可能是不一样的。
如图所示的解决方案,假如folderclass的路径可以用如下代码获取
stringdebug=System.AppDomain.CurrentDomain.BaseDirectory;
stringproj=System.IO.Path.Combine(debug,@"....");
foreach(stringfolderinSystem.IO.Directory.GetDirectories(proj))
MessageBox.Show(folder);//其中就可以遍历到你要的文件夹
如果你想绑定文件夹内的资源,其设置其属性为资源,并根据如下链接写xaml
http://msdn.microsoft.com/zh-cn/library/aa970069(v=vs.110).aspx
Ⅳ WPF窗口程序,如何打开文件夹
.Diagnostics.Process.Start("explorer.exe ", path)
Ⅵ 如何在WPF 中嵌入Windows Media Player
1. 新建一个基于.Net Framework 3.5 的WPF 应用程序项目:WPFWMP。
2. 在工程中新建Windows Forms Control Library 项目:WMPControlLibrary。
创建WMP 控件
下面要在WMPControlLibrary 中创建Windows Media Player 控件,在项目中加入Windows Media Player COM。
在左侧工具栏中若没有Windows Media Player 控件的话,可以右键General 选择Choose Items,在COM 组件列表中勾选Windows Media Player 选项。
将Windows Media Player 控件拖入设计窗口,并将Dock 设置为Fill 填充控件。
F6 编译项目后会生成以下三个DLL 文件,这就是我们稍后将要在WPF 中用到的WMP 控件库。
嵌入WMP 控件
回到WPF 项目在前篇文章的基础上,保留其中“Open File” 按键和Button 样式。将上面三个DLL 文件及System.Windows.Forms、WindowsFormsIntegration 加入项目。
在XAML 中加入AxWMPLib 命名空间,并将上篇MediaElement 替换为AxWindowsMediaPlayer 控件,注意此处是将WinForm 控件嵌入WPF 程序,所以要将AxWindowsMediaPlayer 控件放到<WindowsFormsHost>标签中。
<Window x:Class="WPFWMP.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mediaControl="clr-namespace:AxWMPLib;assembly=AxInterop.WMPLib"
Title="WPF Media Player" Height="450" Width="520" Background="#FF554D4D">
<Window.Resources>
<Style x:Key="btnStyle" TargetType="Button">
… …
</Style>
</Window.Resources>
<StackPanel HorizontalAlignment="Center" Margin="10">
<Border BorderThickness="3" Background="Black">
… …
<WindowsFormsHost Height="340" Width="450">
<mediaControl:AxWindowsMediaPlayer x:Name="wpfMediaPlayer"/>
</WindowsFormsHost>
</Border>
<Button Content="Open File" Click="openFile_Click" Margin="10"
Width="80" Style="{StaticResource btnStyle}"/>
</StackPanel>
</Window>
通过Windows API Code Pack 为“Open File” 按键添加点击事件,默认打开Sample Video 文件夹,选择视频文件后自动播放。
private void openFile_Click(object sender, RoutedEventArgs e)
{
ShellContainer selectedFolder = null;
selectedFolder = KnownFolders.SampleVideos as ShellContainer;
CommonOpenFileDialog cfd = new CommonOpenFileDialog();
cfd. = selectedFolder;
cfd.EnsureReadOnly = true;
cfd.Filters.Add(new CommonFileDialogFilter("WMV Files", "*.wmv"));
cfd.Filters.Add(new CommonFileDialogFilter("AVI Files", "*.avi"));
cfd.Filters.Add(new CommonFileDialogFilter("MP3 Files", "*.mp3"));
if (cfd.ShowDialog() == CommonFileDialogResult.OK)
{
wpfMediaPlayer.URL = cfd.FileName;
}
}
Ⅶ WPF与WinForm
底层框架不一样,界面展现不一样。 参考资料 MFC 生成本机代码,自然是很快。可是,消息循环,减缓了界面显示速度。
winform 封装了 win32 的api,多次进行P/invoke 操作 (大部分使用p/invoke操作封装),速度慢 。
wpf是一种新的模型,不再使用win32 模型,自己新建模型,使用dx 作为新的显示技术,直接访问驱动程序,加快了运行速度,可是,这种模型,需要支持dx 9 的显卡,硬件要求高(你还能找到现代机器不支持dx9 的吗?)
开发效率上,MFC<WPF<winform
尽管MFC开发界面执行效率高但是开发效率低,作为现在的项目开发来说时间跟开发效率往往能决定项目的成败,所以除非有特别的需求,否则都回尽量避免用mfc来做开发,MFC只是一个弱封装器。
开发成本,MFC〉wpf〉winform
用MFC开发成本太高,对开发者能力要求更高,作为客服当然希望开发的费用越少越好,开发者当然希望钱赚得越多越好,这样一比,这也是MFC没落的一个很大的原因。
界面执行效率上,MFC==WPF〉winform
随着计算机硬件的性能提高,多核cpu的普及,它们的差距会越来越小。
开发灵活性上:wpf〉MFC〉winform
美观上:Wpf〉winform〉MFC
这一项中MFC下要开发出一个华丽的ui极其困难,也许你可以说你可以用控件,但是商业开发控件是要收费的!!Wpf很容易就可以做出vista那样的ui特效。mfc要写出这种效果不知要写到何年何月。
这样一来MFC存在的价值就更低了。效率和美观不如Wpf,开发效率又不如winform,预计不出10年,随着vista取代xp,mfc将会退出历史舞台。
内存使用上:wpf〉winform〉MFC
随着计算机硬件的性能提高wpf这个缺点会被忽略。
使用范围:wpf〉MFC==winform
有以上可知:WPF 大有取代winform 和MFC之势,从未来net的发展来看,MFC以后只会变成一种经典,作为一种技术来供开发者学习,winform和WPF两者会并存发展,但最终都会被WPF取代,最终实现桌面应用程序和浏览器应用程序的统一。
Ⅷ 新人求助,WPF和UWP的优势及取舍
没有仔细研究, 以下是个人主观看法,存在些"想当然", 仅供参考.
首先wpf是依赖于.net framework的, 也就是说xpwin7win8Win10, 都是可以跑起来的.并且发布路径不受限制, 就像目前常见的桌面软件一样, 只要下载个安装包安装即可使用. 而UWP好像只能在w8Win10以及Windows mobile系统上使用, 而且唯一的发布路径就是Windows商店.
其次从风格来看, wpf虽然是流式布局,但更多是为桌面客户端(pc客户端)设计的, 而UWP是移动为先,兼顾PC客户端的.
综上就目前而言, wpf更加偏向于或者更适合于企业级应用或者说面向企业的商业软件; 而UWP偏向于面向个人消费者的应用软件.
另外我感觉wpfUWP, 甚至html5这些"界面技术"其实是相通的,非常相似. wpf和UWP甚至很近似, 掌握了其中一个的话再学习另一个非常容易.
Ⅸ 如何在wpf中实现文件夹选择功能
WPF中实现点击 . . . 按钮后选择文件夹作为主目录功能;亲测有用
(下图是我用WPF做的FTP服务器和FTP上传下载器的一部分)