usingSystem.ComponentModel;usingSystem.Windows;usingSystem.Windows.Controls;publicclassMyUserControl:UserControl{publicMyUserControl(){if(DesignerProperties.GetIsInDesignMode(this)){// Design-mode specific functionality}}}
Eu apliquei sua solução em meu aplicativo, mas não funciona. Eu perguntei aqui stackoverflow.com/questions/3987439/… . Se você quiser, junte-se a nós e discuta.
No VS2019, a chave Enable project codedeve estar habilitada (ou Menu-> Design-> 🗹 Executar Código do Projeto).
marbel82
47
Em alguns casos, preciso saber se uma chamada para minha classe não IU é iniciada pelo designer (como se eu criasse uma classe DataContext a partir de XAML). Então, a abordagem deste artigo do MSDN é útil:
// Check for design mode. if((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)){//in Design mode}
Eu apliquei sua solução em meu aplicativo, mas não funciona. Eu perguntei aqui stackoverflow.com/questions/3987439/… . Se você quiser, junte-se a nós e discuta.
Nam G VU
20
Para quaisquer controles WPF hospedados em WinForms ,DesignerProperties.GetIsInDesignMode(this) não funciona.
Essa classe ( Windows.ApplicationModel) é para aplicativos da Store, incluídos na API do Windows Runtime. Esta não é uma solução WPF out-of-the-box se você estiver apenas trabalhando em um aplicativo de desktop normal do Windows.
Respostas:
Na verdade, existe :
System.ComponentModel.DesignerProperties.GetIsInDesignMode
Exemplo:
fonte
Enable project code
deve estar habilitada (ou Menu-> Design-> 🗹 Executar Código do Projeto).Em alguns casos, preciso saber se uma chamada para minha classe não IU é iniciada pelo designer (como se eu criasse uma classe DataContext a partir de XAML). Então, a abordagem deste artigo do MSDN é útil:
fonte
Para quaisquer controles WPF hospedados em WinForms ,
DesignerProperties.GetIsInDesignMode(this)
não funciona.Portanto, criei um bug no Microsoft Connect e adicionei uma solução alternativa:
fonte
GetEntryAssembly()
vez deGetExecutingAssembly()
? Este último deve retornar a montagem onde esta propriedade está definidaResposta tardia, eu sei - mas para qualquer pessoa que queira usar isso em um
DataTrigger
ou em qualquer lugar do XAML em geral:fonte
Use este:
(As operações Async e File não funcionam aqui)
Além disso, para instanciar um objeto de tempo de design em XAML (d é o namespace de designer especial)
fonte
Windows.ApplicationModel
) é para aplicativos da Store, incluídos na API do Windows Runtime. Esta não é uma solução WPF out-of-the-box se você estiver apenas trabalhando em um aplicativo de desktop normal do Windows.