Стиль Silverlight Dropdown / Combobox - PullRequest
0 голосов
/ 24 ноября 2010

Попытка стилизовать выпадающий список в Silverlight 4 - я успешно внес все изменения визуального стиля.Часть, которая поставила меня в тупик - я пытаюсь выровнять выпадающую (всплывающую) часть элемента управления так, чтобы правый край выпадающего был выровнен с правым краем элемента управленияПо умолчанию левый край выровнен по левому краю элемента управления.

Есть мысли / примеры?Это трудно сделать, или я что-то упускаю?

спасибо, Майкл

Ответы [ 2 ]

1 голос
/ 17 февраля 2011

к сожалению, это не то, что вы легко можете сделать с помощью шаблонов (если ваш элемент управления не имеет фиксированного размера и вы не против жесткого смещения всплывающих окон в шаблоне).

Есть одно решение, которое не так уж сложно:

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

и затем в коде:

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 голосов
/ 13 июля 2011

Что вы можете сделать, это использовать MS Expression Blend для создания шаблона по умолчанию для ComboBox. В шаблоне вы найдете всплывающее окно с именем Popup, измените его атрибут FlowDirection на RightToLeft ...

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

Обратите внимание, что объект ScrollViewer внутри Popup будет наследовать набор FlowDirection, поэтому вы должны явно установить его FlowDirection в LeftToRight ...

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

... иначе он будет заполнен из RightToLeft, а полоса прокрутки будет на левой стороне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...