WPFノート1
6960 ワード
メモ内容: BUG、WPFがフォームを実行するときにHide()メソッドを呼び出し、その後に異常解決策 をShow()する. WPFフォームがボーダーレス に設定ローカルファイル を選択フォルダ を選択 WPFは右下のポップアップメッセージウィンドウ を実現する. WPF表示HTTPネットワークピクチャ 現在のアプリケーションソフトウェアのバージョン を取得匿名オブジェクト(object)の属性値 を取得する WPF*.exeは別の*.exeに を伝達する C#zip圧縮とzip解凍、ダウンロードアドレス:ここをクリックDotNetZip C#ファイルパスからファイル名 を取得 C#におけるis判定タイプとas強制変換 WPFプログラムパスを取得するいくつかの方法プログラムパスに基づいてプログラムセット情報を取得する
1 BUG,WPFフォーム実行時にHide()メソッドを呼び出してから異常な解決策をShow()
XAMLページ:Closed="Window_Closed"
CSバックグラウンド:
再度Show()が表示されると異常が発生します.
ソリューションOnClosingイベント解決ウィンドウが非表示になってから再開できないバグを書き換えます.
クローズイベントClosingとClosedの違いウィンドウが本当に閉じる前に、ClosingがトリガーされてからClosedがトリガーされます.
2、WPFフォームは枠なしに設定
シナリオ1:
3、ローカルファイルの選択
4、フォルダ選択フォルダはSystem.Windows.Formsの密封類FolderBrowserDialogを使用している.
5、WPFは右下のポップアップメッセージウィンドウを実現する
1)using System.Windows.Threadingを参照する.
2)実現
6、WPFはHTTPネットワーク画像を表示する
7、現在のアプリケーションのバージョンを取得する
8、匿名オブジェクト(object)の属性値を取得する
9、WPF*.exeは別の*.exeに値を伝達する
ステップ1:受信した*.exeのApp.xaml.csセットアッププログラムの実行時にトリガーされるイベント
ステップ2:値を取る
ステップ3、*.exeに値を渡す
10、C#zip圧縮とzip解凍ネットワーク上のこの方面のプラグインは比較的に多くて、例えば(ICSharpCode.SharpZipLib.dll)、本人はDotNetZipを使うことをお勧めします.1)asp.netネットワークダウンロードアプリケーション:URLパラメータに基づいてサーバーのファイルを選択し、ユーザーがダウンロードできるようにし、サーバーはzip圧縮ファイルを保存する必要はない.
2)C#ローカルファイルを圧縮し、指定したアドレスに保存
3)zipファイルパスに従ってファイルを解凍する
4)zipファイルで指定したファイルを削除できます
5)既存のzip圧縮ファイルにファイルを追加できる
具体的な使い方は、ネットでDotNetZipを検索して使うか、Ionic.Zip
ダウンロード先:ここをクリックしてDotNetZip
11、C#ファイルパスでファイル名を取得する前にファイル接尾辞名やファイル名を取得するときは、LastIndexOf、Replaceなどを常に使用していたが、実際には必要なかった.System.IO.Pathを使用すると、それを全く必要としません.例:
12、C#におけるis判定タイプとas強制変換
asオペレータ変換を使用し、従来のCスタイルの強制変換を使用してisを使用して変換テストを行い、asオペレータまたは強制回転例1を使用します.
例2:
例3:
1 BUG,WPFフォーム実行時にHide()メソッドを呼び出してから異常な解決策をShow()
XAMLページ:Closed="Window_Closed"
CSバックグラウンド:
private void Window_Closed(object sender, EventArgs e)
{
this.Hide();
}
再度Show()が表示されると異常が発生します.
noti.Click += delegate
{
this.Show();
};
ソリューションOnClosingイベント解決ウィンドウが非表示になってから再開できないバグを書き換えます.
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
this.Hide();
e.Cancel = true; //
}
クローズイベントClosingとClosedの違いウィンドウが本当に閉じる前に、ClosingがトリガーされてからClosedがトリガーされます.
2、WPFフォームは枠なしに設定
シナリオ1:
3、ローカルファイルの選択
private void OpenFile_Click(object sender, RoutedEventArgs e)
{
// OpenFileDialog
var openFileDialog = new Microsoft.Win32.OpenFileDialog()
{
Filter = "*.xml|*.XML", //
Title = " ", //
InitialDirectory="c:\\", //
RestoreDirectory=true //
};
var result = openFileDialog.ShowDialog();
if (result == true)
{
//
string filename = openFileDialog.FileName;
}
}
4、フォルダ選択フォルダはSystem.Windows.Formsの密封類FolderBrowserDialogを使用している.
private void dialogFolder_Click(object sender, RoutedEventArgs e)
{
var dialog = new FolderBrowserDialog()
{
SelectedPath = @"f:", //
Description = " ", //
ShowNewFolderButton = true // , true
};
var result = dialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.Cancel)
{
//
return;
}
//
string foldername = dialog.SelectedPath.Trim();
// CODE
//
System.Diagnostics.Process.Start("explorer.exe ", this.txtFolder.Text);
}
5、WPFは右下のポップアップメッセージウィンドウを実現する
1)using System.Windows.Threadingを参照する.
2)実現
public MainWindow()
{
InitializeComponent();
timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(300);
timer.Tick += timer_Tick;
this.Left = SystemParameters.WorkArea.Width - this.Width;
this.EndTop = SystemParameters.WorkArea.Height-this.Height;
this.Top = SystemParameters.WorkArea.Height;
}
private DispatcherTimer timer;
public double EndTop { get; set; }
void timer_Tick(object sender, EventArgs e)
{
while (this.Top > EndTop)
{
this.Top -= 5;
}
}
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
timer.Start();
}
6、WPFはHTTPネットワーク画像を表示する
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http// ");
WebResponse response = request.GetResponse();
Image img = Image.FromStream(response.GetResponseStream());
7、現在のアプリケーションのバージョンを取得する
string version = Version(System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetEntryAssembly().Location).ProductVersion);
8、匿名オブジェクト(object)の属性値を取得する
Type type = obj.GetType();
PropertyInfo[] ps = type.GetProperties();
foreach (PropertyInfo p in ps)
{
var n = p.Name; //
var v = p.GetValue(obj, null); //
var t = p.PropertyType; //
}
9、WPF*.exeは別の*.exeに値を伝達する
ステップ1:受信した*.exeのApp.xaml.csセットアッププログラムの実行時にトリガーされるイベント
protected override void OnStartup(StartupEventArgs e)
{
if (e.Args != null && e.Args.Length > 0)
{
this.Properties["args"] = e.Args[0];
}
base.OnStartup(e);
}
ステップ2:値を取る
if (Application.Current.Properties["args"] != null)
{
string args = Application.Current.Properties["args"].ToString();
}
ステップ3、*.exeに値を渡す
System.Diagnostics.ProcessStartInfo exe = new System.Diagnostics.ProcessStartInfo(@" *.exe", "args ");
System.Diagnostics.Process.Start(a);
10、C#zip圧縮とzip解凍ネットワーク上のこの方面のプラグインは比較的に多くて、例えば(ICSharpCode.SharpZipLib.dll)、本人はDotNetZipを使うことをお勧めします.1)asp.netネットワークダウンロードアプリケーション:URLパラメータに基づいてサーバーのファイルを選択し、ユーザーがダウンロードできるようにし、サーバーはzip圧縮ファイルを保存する必要はない.
2)C#ローカルファイルを圧縮し、指定したアドレスに保存
3)zipファイルパスに従ってファイルを解凍する
4)zipファイルで指定したファイルを削除できます
5)既存のzip圧縮ファイルにファイルを追加できる
具体的な使い方は、ネットでDotNetZipを検索して使うか、Ionic.Zip
ダウンロード先:ここをクリックしてDotNetZip
11、C#ファイルパスでファイル名を取得する前にファイル接尾辞名やファイル名を取得するときは、LastIndexOf、Replaceなどを常に使用していたが、実際には必要なかった.System.IO.Pathを使用すると、それを全く必要としません.例:
string fullPath = @"\site\image.gif";
string filename = System.IO.Path.GetFileName(fullPath); // image.gif
string extension = System.IO.Path.GetExtension(fullPath); // .gif
string name = System.IO.Path.GetFileNameWithoutExtension(fullPath);// image
string directoryname = System.IO.Path.GetDirectoryName(fullPath); //
12、C#におけるis判定タイプとas強制変換
asオペレータ変換を使用し、従来のCスタイルの強制変換を使用してisを使用して変換テストを行い、asオペレータまたは強制回転例1を使用します.
object o = *;
try
{
MyType t = (MyType) o;
if (t != null)
{
////
}
else
{
////
}
}
catch
{
////
}
例2:
if(T is System.String)
例3:
public static T Haha<T>()
{
Type tp = typeof(T);
if (tp.FullName == "System.String")
{
// String
}
else if (tp.FullName == "System.Data.DataTable")
{
// DataTable
}
return tp.ToString();
}