web-dev-qa-db-fra.com

Différence entre DesignWidth et Width dans UserControl dans WPF

Lorsque je crée un nouveau UserControl dans WPF, studio crée du XAML:

<UserControl x:Class="MOG.Objects.Date.Calender"
             xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.Microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">

    <Grid>

    </Grid>
</UserControl>

Dans UserContol je peux également ajouter la propriété Width. Quelle est la différence entre DesignWidth et Width?

27
mohammad

d:DesignHeight et d.DesignWidth sont pour le concepteur (le WYSIWYG), dans Visual Studio ou dans Expression Blend. Height et Width sont en fait pour l'exécution.

66
Rhyous

Propriétés d:DesignHeight et d:DesignWidth="300" sont utilisés car ( Source ):

  • Les UserControls ne sont pas intégrés dans une vue parent. Width et Height ne sont pas définis.

  • Le constructeur de l'élément racine n'est pas appelé. L'élément racine est remplacé par le concepteur. ViewModel n'est pas créé.

  • Les commandes se comportent différemment. Aucun événement de souris et de clavier. Extensions de conception chargées

Pour améliorer l'expérience de conception, Microsoft fournit des attributs de conception spéciaux qui peuvent être ajoutés à n'importe quel élément WPF et servir de conseil à l'outil de conception.

Tout ce qui est utilisé dans le préfixe d: est utilisé pour concevoir le mode, ceux-ci incluent des propriétés telles que:

d:DesignWidth

d:DesignHeight

d:LayoutOverrides

20
Anatoliy Nikolaev