visual studio que puede programacion presentacion hacer ejemplos desventajas con animaciones wpf .net-3.5

que - visual studio wpf



¿Hay una propiedad DesignMode en WPF? (5)

En Winforms puedes decir

if ( DesignMode ) { // Do something that only happens on Design mode }

¿hay algo como esto en WPF?


En algunos casos, necesito saber si el diseñador ha iniciado una llamada a mi clase que no pertenece a la UI (como si creara una clase DataContext de XAML). Entonces, el enfoque de este artículo de MSDN es útil:

// Check for design mode. if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)) { //in Design mode }


Para cualquier control WPF alojado en WinForms , DesignerProperties.GetIsInDesignMode(this) no funciona.

Entonces, creé un error en Microsoft Connect y agregué una solución:

public static bool IsInDesignMode() { if ( System.Reflection.Assembly.GetExecutingAssembly().Location.Contains( "VisualStudio" ) ) { return true; } return false; }


Respuesta tardía, lo sé, pero para cualquier otra persona que quiera usar esto en un DataTrigger , o en cualquier lugar en XAML en general:

xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=PresentationFramework" <Style.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=(componentModel:DesignerProperties.IsInDesignMode)}" Value="True"> <Setter Property="Visibility" Value="Visible"/> </DataTrigger> </Style.Triggers>


Usa este:

if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { //design only code here }

(Las operaciones de Async y File no funcionarán aquí)

Además, para instanciar un objeto de tiempo de diseño en XAML (d es el espacio de nombres de diseñador especial)

<Grid d:DataContext="{d:DesignInstance Type=local:MyViewModel, IsDesignTimeCreatable=True}"> ... </Grid>


De hecho, hay :

System.ComponentModel.DesignerProperties.GetIsInDesignMode

Ejemplo:

using System.ComponentModel; using System.Windows; using System.Windows.Controls; public class MyUserControl : UserControl { public MyUserControl() { if (DesignerProperties.GetIsInDesignMode(this)) { // Design-mode specific functionality } } }