2010-11-23 7 views
0

Essayer de styler une liste déroulante dans Silverlight 4 - J'ai réussi à modifier tous les styles visuels. La partie qui m'a bloqué est que j'essaie d'aligner la partie déroulante (pop-up) du contrôle de sorte que le bord droit de la liste déroulante soit aligné avec le bord droit du contrôle. La valeur par défaut est le bord gauche aligné avec le bord gauche du contrôle.Styling Silverlight Dropdown/Combobox

Des pensées/des exemples? Est-ce difficile à faire ou ai-je oublié quelque chose?

grâce Michael

Répondre

1

malheureusement ce n'est pas quelque chose que vous pouvez facilement le faire par templating (sauf si votre commande est de taille fixe et ne vous dérange pas hardcoding décalages Popup dans le modèle).

Il y a une solution qui est pas si compliqué que:

<Popup x:Name="Popup" Loaded="Popup_Loaded"> 

puis dans le code:

private void Popup_Loaded(object sender, RoutedEventArgs e) 
{ 
    Popup myPopup = sender as Popup; 

    if (myPopup != null) 
    { 
     myPopup.VerticalAlignment = VerticalAlignment.Bottom; 
     myPopup.HorizontalAlignment = HorizontalAlignment.Right; 
    } 
} 
0

Ce que vous pouvez faire est d'utiliser MS Expression Blend pour générer le modèle par défaut pour une zone de liste déroulante . Dans le modèle, vous trouverez une Popup nommée Popup, changer est FlowDirection attribuer à RightToLeft ...

<Popup x:Name="Popup" FlowDirection="RightToLeft"> 

Notez l'objet ScrollViewer à l'intérieur du Popup héritera du FlowDirection fixé de sorte que vous devez définir explicitement son FlowDirection à LeftToRight. ..

<ScrollViewer x:Name="ScrollViewer" BorderThickness="0" Padding="1" FlowDirection="LeftToRight"> 

... sinon elle sera remplie à partir de RightToLeft et la barre de défilement sera sur le côté gauche.