2010-11-23 9 views
0

Versuchen, eine Dropdown-Liste in Silverlight 4 zu stylen - ich habe erfolgreich alle visuellen Stiländerungen vorgenommen. Der Teil, der mich überfordert hat, ist, dass ich versuche, den Dropdown-Bereich des Steuerelements so auszurichten, dass der rechte Rand des Dropdown-Feldes mit dem rechten Rand des Steuerelements ausgerichtet ist. Standardmäßig ist die linke Kante an der linken Kante des Steuerelements ausgerichtet.Styling Silverlight Dropdown/Combobox

Irgendwelche Gedanken/Beispiele? Ist das schwer zu tun oder fehlt mir etwas?

dank Michael

Antwort

1

leider etwas, das es nicht Sie ist leicht von Templating tun können (es sei denn, Ihre Steuer feste Größe ist und es Ihnen nichts ausmacht Popup-Offsets in der Vorlage hartzucodieren).

Es gibt eine Lösung, die allerdings nicht so kompliziert ist:

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

und dann in den Code ein:

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

Was Sie tun können, ist MS Expression Blend verwenden, um die Standardvorlage für eine ComboBox zu erzeugen . In der Vorlage wird ein Popup-Namen Popup, ändern finden es ist zu RightToLeft ... Flowdirection-Attribut

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

Beachten Sie die Scroll Objekt innerhalb des Popup erben die Flowdirection gesetzt, so müssen Sie explizit seine Flowdirection zu LeftToRight. ..

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

... sonst wird es von RightToLeft füllen und die Bildlaufleiste wird auf der linken Seite sein.