usingSystem.ComponentModel;usingSystem.Windows;usingSystem.Windows.Controls;publicclassMyUserControl:UserControl{publicMyUserControl(){if(DesignerProperties.GetIsInDesignMode(this)){// Design-mode specific functionality}}}
Saya menerapkan solusi Anda dalam aplikasi saya tetapi tidak berhasil. Saya menanyakannya di sini stackoverflow.com/questions/3987439/… . Jika Anda mau, silakan bergabung dengan kami dan berdiskusi.
Dalam VS2019, sakelar Enable project codeharus diaktifkan (atau Menu-> Desain-> 🗹 Jalankan Kode Proyek).
marbel82
47
Dalam beberapa kasus saya perlu tahu, apakah panggilan ke kelas non-UI saya diprakarsai oleh perancang (seperti jika saya membuat kelas DataContext dari XAML). Maka pendekatan dari artikel MSDN ini sangat membantu:
// Check for design mode. if((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)){//in Design mode}
Saya menerapkan solusi Anda dalam aplikasi saya tetapi tidak berhasil. Saya menanyakannya di sini stackoverflow.com/questions/3987439/… . Jika Anda mau, silakan bergabung dengan kami dan berdiskusi.
Nam G VU
20
Untuk Kontrol WPF apa pun yang dihosting di WinForms , DesignerProperties.GetIsInDesignMode(this)tidak berfungsi.
Kelas itu ( Windows.ApplicationModel) adalah untuk aplikasi Store, termasuk dalam Windows Runtime API. Ini bukan solusi WPF out-of-the-box jika Anda hanya bekerja pada aplikasi desktop Windows biasa.
Jawaban:
Memang ada :
System.ComponentModel.DesignerProperties.GetIsInDesignMode
Contoh:
sumber
Enable project code
harus diaktifkan (atau Menu-> Desain-> 🗹 Jalankan Kode Proyek).Dalam beberapa kasus saya perlu tahu, apakah panggilan ke kelas non-UI saya diprakarsai oleh perancang (seperti jika saya membuat kelas DataContext dari XAML). Maka pendekatan dari artikel MSDN ini sangat membantu:
sumber
Untuk Kontrol WPF apa pun yang dihosting di WinForms ,
DesignerProperties.GetIsInDesignMode(this)
tidak berfungsi.Jadi, saya membuat bug di Microsoft Connect dan menambahkan solusi:
sumber
GetEntryAssembly()
bukanGetExecutingAssembly()
? Yang terakhir harus mengembalikan perakitan di mana properti ini ditentukanJawaban terlambat, saya tahu - tetapi untuk siapa pun yang ingin menggunakan ini di
DataTrigger
, atau di mana pun di XAML secara umum:sumber
Gunakan yang ini:
(Operasi Async dan File tidak akan berfungsi di sini)
Juga, untuk membuat contoh objek waktu desain di XAML (d adalah namespace desainer khusus)
sumber
Windows.ApplicationModel
) adalah untuk aplikasi Store, termasuk dalam Windows Runtime API. Ini bukan solusi WPF out-of-the-box jika Anda hanya bekerja pada aplikasi desktop Windows biasa.