J'ai rencontré une situation dans laquelle il serait très utile de spécifier une valeur à virgule flottante directement dans XAML et de l'utiliser comme ressource pour plusieurs de mes éléments d'interface utilisateur. Après avoir cherché autour, j'ai trouvé une bonne quantité d'informations sur la façon d'inclure le bon assembly (mscorlib) dans votre XAML afin que vous puissiez faire exactement cela.Utilisation de types de système en ressources XAML
Malheureusement, je reçois une exception dans un cas où j'essaie de le faire. Voici le XAML suivant recréant la situation:
<Window x:Class="davidtestapp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:core="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<core:Double x:Key="MyDouble">120</core:Double>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{StaticResource MyDouble}" />
<ColumnDefinition Width="40" />
<ColumnDefinition Width="40" />
</Grid.ColumnDefinitions>
<Rectangle Grid.Column="0" Fill="Red" />
<Rectangle Grid.Column="1" Fill="Green" />
<Rectangle Grid.Column="2" Fill="Blue" />
</Grid>
</Window>
Lorsque je tente de compiler et exécuter, je reçois un XamlParseException jeté à moi qui dit que « 120» n'est pas une valeur valide pour la propriété « Largeur » ".
Mais la propriété "Width" est un double, alors pourquoi ne puis-je pas le définir en utilisant la StaticResource qui a été définie? Est-ce que quelqu'un sait comment faire ça?
Merci! Ça a marché. Cela aide beaucoup. Je n'ai pas réalisé qu'il était de type GridLength. – David