Ⅰ 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上傳下載器的一部分)