**如下:
class
singletonwindow
public
static
boolean
getisenabled(dependencyobject
element)
//根據附加屬性的返回值使能單例項模式
public
static
void
onisenabledchanged(dependencyobject obj,
dependencypropertychangedeventargs
args)
process();
return;
}public
static
void process() //
如果不適用附加屬性也可以直接使用此函式
}const
intws_shownormal = 1;
[system.runtime.interopservices.dllimport("user32.dll")]
static
extern
bool showwindowasync(intptr hwnd, int
cmdshow);
[system.runtime.interopservices.dllimport("user32.dll")]
static
extern
bool setforegroundwindow(intptr
hwnd);
[system.runtime.interopservices.dllimport("user32.dll")]
static
extern
bool flashwindow(intptr hwnd,bool
binvert);
static
system.diagnostics.process
getrunninginstance()
return
null;
}static
void
handlerunninginstance(system.diagnostics.process instance)
setforegroundwindow(instance.mainwindowhandle);
showwindowasync(instance.mainwindowhandle,
ws_shownormal);
}else
}static
void
flashwindow(intptr hanlde, int interval)}
**其實很簡單,前半部分是註冊依賴屬性,然後根據依賴屬性判斷是否啟用單例項模式;後半部分就是乙個傳統的單例項模式的功能了。也就不介紹了。
使用這段**也很簡單:
xaml方式:在主視窗的xaml檔案中加入附加屬性即可
src:singletonwindow.isenabled="true"
>
傳統方式:直接使用**中後半部分,和winform下沒什麼區別。在主視窗的建構函式裡面加入這句話。
singletonwindow.process();
**如下:
class
singletonwindow
public
static
boolean
getisenabled(dependencyobject
element)
//根據附加屬性的返回值使能單例項模式
public
static
void
onisenabledchanged(dependencyobject obj,
dependencypropertychangedeventargs
args)
process();
return;
}public
static
void process() //
如果不適用附加屬性也可以直接使用此函式
}const
intws_shownormal = 1;
[system.runtime.interopservices.dllimport("user32.dll")]
static
extern
bool showwindowasync(intptr hwnd, int
cmdshow);
[system.runtime.interopservices.dllimport("user32.dll")]
static
extern
bool setforegroundwindow(intptr
hwnd);
[system.runtime.interopservices.dllimport("user32.dll")]
static
extern
bool flashwindow(intptr hwnd,bool
binvert);
static
system.diagnostics.process
getrunninginstance()
return
null;
}static
void
handlerunninginstance(system.diagnostics.process instance)
setforegroundwindow(instance.mainwindowhandle);
showwindowasync(instance.mainwindowhandle,
ws_shownormal);
}else
}static
void
flashwindow(intptr hanlde, int interval)}
**其實很簡單,前半部分是註冊依賴屬性,然後根據依賴屬性判斷是否啟用單例項模式;後半部分就是乙個傳統的單例項模式的功能了。也就不介紹了。
使用這段**也很簡單:
xaml方式:在主視窗的xaml檔案中加入附加屬性即可
src:singletonwindow.isenabled="true"
>
傳統方式:直接使用**中後半部分,和winform下沒什麼區別。在主視窗的建構函式裡面加入這句話。
singletonwindow.process();
WPF 附加屬性
附加屬性的作用就是將屬性與資料型別 宿主 解耦,讓資料型別的設計更加靈活。其本質就是依賴屬性,兩者僅在註冊和包裝器上有一點區別。附加屬性 游標移動到類體中 花括號之間 輸入propa tab tab,附加屬性的框架就準備好了,繼續 tab tab 可以在幾個空缺間輪換並修改,直至按下enter。cl...
WPF 附加屬性
1 附加屬性 乙個屬性原來不屬於某個物件,但由於某種需求而被後來附加上去。附加屬性的本質是依賴屬性。2 附加屬性作用 將屬性與資料型別解耦,讓資料型別的設計的更加靈活。3 vs 2008中,依賴屬性的snippet是propdp,附加屬性的snippet是propa,屬性的snippet是prop。...
WPF 附加屬性彙總
本文內容翻譯自微軟官網部分內容 2 為什麼要使用附加屬性 使用附加屬性的目的是,允許子元素給父元素的屬性設定唯一值。乙個場景就是,ui子元素告知ui父元素,子元素自己應該如何在父元素中展示,例如dockpanel.dock屬性。這個屬性被建立為乙個附加屬性,因為它被設計為由被包含的子元素設定值而不是...