原文:
WPF中使用文件浏览对话框的几种方式
WPF本身并没有为我们提供文件浏览的控件, 也不能直接使用Forms中的控件,而文件浏览对话框又是我们最常用的控件之一. 下面是我实现的方式
方式1: 使用win32控件OpenFileDialog
Microsoft.Win32.OpenFileDialog ofd =
new
Microsoft.Win32.OpenFileDialog();
ofd.DefaultExt =
".xml"
;
ofd.Filter =
"xml file|*.xml"
;
if
(ofd.ShowDialog() ==
true
)
方式2: 使用Forms中的OpenFileDialog控件
WPF中是不能直接使用Forms中的控件的,否则会提示找不到Forms名字控件. 如果你仍然要用, 答案便是添加.net 引用reference
之后就可以像下面一样正常使用Forms中的控件了
System.Windows.Forms.OpenFileDialog openFileDialog1 =
new
System.Windows.Forms.OpenFileDialog();
openFileDialog1.InitialDirectory =
"c:\\"
;
openFileDialog1.Filter =
"txt files (*.txt)|*.txt|All files (*.*)|*.*"
;
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory =
true
;
if
(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
System.Windows.Forms.FolderBrowserDialog folderBrowserDialog =
new
System.Windows.Forms.FolderBrowserDialog();
System.Windows.Forms.DialogResult result = folderBrowserDialog.ShowDialog();
if
(result == System.Windows.Forms.DialogResult.OK)
tb_FolderPath.Text = folderBrowserDialog.SelectedPath;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public
class
OpenFileName
public
int
structSize = 0;
public
IntPtr hwnd = IntPtr.Zero;
public
IntPtr hinst = IntPtr.Zero;
public
string
filter =
null
;
public
string
custFilter =
null
;
public
int
custFilterMax = 0;
public
int
filterIndex = 0;
public
string
file =
null
;
public
int
maxFile = 0;
public
string
fileTitle =
null
;
public
int
maxFileTitle = 0;
public
string
initialDir =
null
;
public
string
title =
null
;
public
int
flags = 0;
public
short
fileOffset = 0;
public
short
fileExtMax = 0;
public
string
defExt =
null
;
public
int
custData = 0;
public
IntPtr pHook = IntPtr.Zero;
public
string
template =
null
;
public
class
LibWrap
[DllImport(
"Comdlg32.dll"
,SetLastError=
true
,ThrowOnUnmappableChar=
true
, CharSet = CharSet.Auto)]
public
static
extern
bool
GetOpenFileName([In, Out] OpenFileName ofn);
OpenFileName ofn =
new
OpenFileName();
ofn.structSize = Marshal.SizeOf(ofn);
ofn.filter =
"Project files\0*.xml"
;
ofn.file =
new
string
(
new
char
[256]);
ofn.maxFile = ofn.file.Length;
ofn.fileTitle =
new
string
(
new
char
[64]);
ofn.maxFileTitle = ofn.fileTitle.Length;
ofn.initialDir =
"C:\\"
;
ofn.title =
"Open Project"
;
ofn.defExt =
"xml"
;
ofn.structSize = Marshal.SizeOf(ofn);
if
(LibWrap.GetOpenFileName(ofn))
原文:WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片
1、图片文件转换成Visual对象
private Visual CreateVisual(string imageFileName) { BitmapImag...
一般来说关于WPF使用3D的例子,都是下面的流程:
1.美工用3DMAX做好模型,生成一个obj文件
2.程序然后打开Blender,将obj拖动到Blender中,生成xaml代码
但是这样做会有至少两个问题:
1. 维护麻烦,因为一旦模型修改,你需要重复上面的步骤,至少要修改xaml的代码。
原文:WPF:WebBrowser提示 为帮助保护你的安全,您的Web浏览器已经限制此文件显示可能访问您的计算机的活动内容
版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.
原文:WPF中查看PDF文件
需要打开PDF文件时,我们第一印象就是使用Adobe Reader。在开发中,经常会遇到需要展示PDF文件的需求。我们会借助于Adobe Reader的Active控件来实现。
原文:WPF程序中App.Config文件的读与写
WPF程序中的App.Config文件是我们应用程序中经常使用的一种配置文件,System.Configuration.dll文件中提供了大量的读写的配置,所以它是一种高效的程序配置方式,那么今天我就这个部分来做一次系统性的总结。
原文:WPF中TextBox文件拖放问题
在WPF中,当我们尝试向TextBox中拖放文件,从而获取其路径时,往往无法成功(拖放文字可以成功)。造成这种原因关键是WPF的TextBox对拖放事件处理机制的不同,具体可参考这篇文章Textbox Drag/Drop in WPF,本文只是介绍如何解决这一问题。