2010-11-23 104 views
0

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

任何想法/例子?这很难做,还是我错过了什么?

感谢 迈克尔

回答

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

你可以做的是使用MS Expression Blend中生成的组合框的默认模板。在模板中,你会发现一个名为弹出弹出,改变它的属性的FlowDirection以从右至左...

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

注意弹出内部的ScrollViewer对象将继承的FlowDirection设置,所以你必须明确地设置它的FlowDirection到LeftToRight。 ..

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

...否则将从右至左填充和滚动条会在左侧。