8
votes

WPF Boîte à outils

Je n'ai que deux semaines dans le document WPF, donc c'est probablement une question triviale. J'ai une collection "Celllist" qui a quelques propriétés que je voudrais lier à un info-bulleTip de sorte que lorsque je passe sur une étiquette des informations de l'instance actuelle de Celllist est affichée . Comment je fais ça? Je comprends une simple liaison et ce peut-être une simple liaison aussi mais je ne peux pas envelopper ma tête autour de lui. Vous trouverez ci-dessous mon xaml pour l'étiquette. Est-ce que quelqu'un pourrait m'expliquer comment je peux accomplir cela. XXX

Merci.


0 commentaires

3 Réponses :


18
votes
<Label Content={Binding Path=Id} ToolTip={Binding Path=Name}/>
just try this

2 commentaires

Que ferais-je pour une info-bulle plus élaborée? Celui qui montre de multiples propriétés dedans.


Stackoverflow.com/Questtions/1825765/... Référez ce lien qui vous aidera



25
votes

La chose délicate à propos de info-bulle code> s est qu'un info-bulletips code> est un objet que vous associez avec un contrôle et non de l'arborescence visuelle du contrôle. Donc, vous ne pouvez pas le peuplir la façon dont vous remplissez les choses dans l'arbre visuel, par exemple: xxx pré>

à la place, ce que vous avez à faire est de créer une instance spécifique d'une info-bulle et d'attribuer C'est un style qui définit son dataContext code> (très important; c'est ainsi que vous pouvez lier les propriétés de la source de données de sa "cible de placement", c'est-à-dire le contrôle qui affiche l'info-bulle) et son Modèle code>. Ensuite, mettez l'arborescence visuelle du ToolTip code>, y compris les fixations, dans le modèle. Enfin, référez le ToolTip Code> dans votre contrôle. p>

donc, voici un Textbox code> dont la liaison code> est validation: p> xxx pré>

Il utilise cette ToolTip Code>: P>

<Style x:Key="ErrorToolTipStyle" TargetType="{x:Type ToolTip}">
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="HasDropShadow" Value="True"/>
    <Setter Property="DataContext" Value="{Binding Path=PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ToolTip">
                <Border
                    Name="Border" 
                    BorderThickness="1" 
                    BorderBrush="LightGray">
                    <StackPanel Orientation="Vertical">
                        <Label Background="Firebrick" Foreground="White" FontWeight="Bold" Margin="4">Validation error</Label>
                        <TextBlock Margin="10" Text="{Binding ValidationError}"/>
                    </StackPanel>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="HasDropShadow" Value="true">
                        <Setter TargetName="Border" Property="CornerRadius" Value="4"/>
                        <Setter TargetName="Border" Property="SnapsToDevicePixels" Value="true"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>


3 commentaires

Conseil: si vous mettez cela dans les ressources locales (Usercontrol.Resources) ou un dictionnaire global assurez-vous de définir le