2017-01-09 4 views
-1

J'ai utilisé le Silverlight AutoCompleteBox Introducing the AutoCompleteBox et maintenant j'espérais appliquer quelques styles, mais je n'arrive pas à l'obtenir pour faire ce que je veux.Les styles Silverlight AutoCompleteBox?

Tous les styles que j'applique le rendent invisible sans erreur et il n'y a aucun moyen de déboguer le code XAML. J'essaye juste d'appliquer quelques coins arrondis sans la chance. Comment vais-je faire cela?

C'est le XAML jusqu'à présent,

<Style TargetType="{x:Type controls:AutoCompleteBox}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type controls:AutoCompleteBox}"> 
        <Border Name="border" BorderThickness="0" 
         Padding="2,2,2,2" CornerRadius="5"> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
    </Setter>    
</Style> 
+1

C'est un ControlTemplate avec une bordure vide. Évidemment, cela ne montre rien. – Clemens

+0

@Clemens, je ne peux pas voir comment il est vide? – KyloRen

+0

Il n'a aucun élément enfant qui affiche du contenu. Commencez par lire ici: [Personnalisation de l'apparence d'un contrôle existant en créant un ControlTemplate] (https://msdn.microsoft.com/en-us/library/ee230084 (v = vs.110) .aspx). – Clemens

Répondre

1

Un modèle de contrôle définit le (complet) apparence d'un contrôle et vous remplacez le (entier) modèle par défaut du AutoCompleteBox avec une bordure vide. C'est pourquoi il ne s'affiche pas.

Vous pouvez copier le style par défaut/modèle de MSDN, puis le modifier selon vos besoins:

AutoCompleteBox Styles et modèles:https://msdn.microsoft.com/ru-ru/library/dd728668(v=vs.95).aspx.

Notez que vous ne pouvez pas "remplacer" uniquement une partie d'un ControlTemplate. Vous devez définir le modèle entier dans son ensemble.

+1

Merci pour l'aide, comme toujours, à votre santé. – KyloRen