Domanda

Volevo cambiare il colore di primo piano quando ho selezionato un listboxItem e l'ho fatto usando questo bit di codice:

<DataTrigger Binding="{Binding  
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True">
                            <Setter TargetName="descriptionTB" Property="Foreground" Value="#000"/>
</DataTrigger>

Puoi trovare la risposta qui .

Ma se volessi che un designer lo facesse in Miscela , come lo farebbe senza eseguire il drill in xaml?

Grazie

È stato utile?

Soluzione

Artur,

Il designer Trigger in Expression Blend consente solo di aggiungere e modificare i trigger di eventi e proprietà. Non ho trovato un modo per aggiungere DataTriggers con Blend. Non sono nemmeno sicuro di come impostare il Binding RelativeSource usando Blend. Ho sempre consegnato il codice XAML per il test e uso Blend per tutto il resto.

Altri suggerimenti

Forse sto fraintendendo la domanda, ma non puoi semplicemente creare una risorsa di stile per la descrizione TB e lasciare che il designer si occupi solo di quella definizione di stile e non dell'associazione?

<DataTrigger Binding="..">
    <Setter TargetName="descriptionTB" Property="Style" Value="{StaticResource DescriptionTextBoxStyle}" />
</DataTrigger>

Nella sezione risorse del tuo controllo o finestra aggiungi la definizione di stile:

<Style TargetType="{x:Type TextBox}" x:Key="DescriptionTextBoxStyle">
    <Setter Property="Foreground" Value="#000" />
</Style>

Se si desidera isolare ulteriormente il progettista dalla meccanica dell'interfaccia utente, è possibile creare un dizionario delle risorse in un file xaml separato in cui è possibile raccogliere tutti gli stili destinati al progettista. Quindi puoi unire quel dizionario di risorse con le risorse principali del tuo controllo o dell'applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top