2 votes

Comment masquer l'étiquette jusqu'à ce que les informations de la zone de texte aient été saisies ?

J'essaie de masquer une étiquette jusqu'à ce que l'utilisateur ait saisi des chiffres dans une boîte de texte. Ensuite, je veux que l'étiquette s'affiche. J'espère pouvoir réaliser tout cela en XAML sans utiliser le langage C#.

J'ai essayé différents types de reliure en me basant sur ce que j'ai trouvé en ligne. Je pense que j'y suis presque, mais il y a toujours quelque chose qui cloche.

Voici le code de la zone de texte :

<TreeViewItem Grid.Row="1" FontSize="12" Header="Width"/>
<TextBox Text="{Binding xcoord, UpdateSourceTrigger=PropertyChanged}" Name="x" Height="20" Width="40" Grid.Row="1" Grid.Column="2" />

Voici le code de l'étiquette :

<Label Foreground="SteelBlue" FontWeight="Bold" HorizontalAlignment="Center" VerticalContentAlignment="Center" Height="40" Background="Transparent" x:Name="label1"  FontSize="16" Width="160"  Content="{Binding Text, ElementName=x}" ContentStringFormat=" {0} mm" Canvas.Left="220" Canvas.Top="382" RenderTransformOrigin="1.045,-0.141" VerticalAlignment="Top">
                    <Label.Style>
                        <Style TargetType="Label">
                            <Setter Property="Visibility" Value="Hidden" />
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding Text.Length, ElementName=x, UpdateSourceTrigger=PropertyChanged}" Value="True">
                                    <Setter Property="Visibility" Value="Visible"/>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Label.Style>

                </Label>

En fait, tout ce que j'ai essayé ne montre pas du tout l'étiquette à l'écran.

0voto

Quelque chose comme cela pourrait fonctionner - cela cacherait l'étiquette si le texte de la boîte à texte est vide.

<TextBox x:Name "tb1"/>
<Label Foreground="SteelBlue" FontWeight="Bold" HorizontalAlignment="Center" VerticalContentAlignment="Center" Height="40" Background="Transparent" x:Name="label1"  FontSize="16" Width="160"  Content="{Binding Text, ElementName=x}" ContentStringFormat=" {0} mm" Canvas.Left="220" Canvas.Top="382" RenderTransformOrigin="1.045,-0.141" VerticalAlignment="Top">
    <Label.Style>
        <Style TargetType="Label">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Text, ElementName=tb1}" Value="">
                    <Setter Property="Visibility" Value="Hidden" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Label.Style>
</Label>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X