造型Silverlight Dropdown / Combobox

时间:2010-11-23 21:07:14

标签: silverlight

尝试在Silverlight 4中设置下拉列表样式 - 我已成功完成所有视觉样式更改。让我难过的部分是我试图对齐控件的下拉(弹出)部分,以便下拉列表的右边缘与控件的右边缘对齐。默认值是左边缘与控件的左边缘对齐。

有什么想法/例子吗?这很难做到,还是我错过了什么?

感谢 迈克尔

2 个答案:

答案 0 :(得分:1)

不幸的是,这不是你可以通过模板轻松完成的事情(除非你的控件是固定大小的,你不介意在模板中硬编码弹出偏移量。)

虽然有一个解决方案并不复杂:

<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;
    }
}

答案 1 :(得分:0)

您可以使用MS Expression Blend生成ComboBox的默认模板。在模板中,您将找到名为Popup的Popup,将其FlowDirection属性更改为RightToLeft ...

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

注意Popup中的ScrollViewer对象将继承FlowDirection集,因此您必须将其FlowDirection显式设置为LeftToRight ......

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

...否则它将从RightToLeft填充,滚动条将在左侧。