尝试在Silverlight 4中设置样式下拉列表 - 我已成功完成所有视觉样式更改。让我难住的部分是我试图对齐控件的下拉(弹出)部分,以便下拉的右边缘与控件的右边缘对齐。默认值是左边缘与控件的左边缘对齐。样式Silverlight下拉列表/组合框
任何想法/例子?这很难做,还是我错过了什么?
感谢 迈克尔
尝试在Silverlight 4中设置样式下拉列表 - 我已成功完成所有视觉样式更改。让我难住的部分是我试图对齐控件的下拉(弹出)部分,以便下拉的右边缘与控件的右边缘对齐。默认值是左边缘与控件的左边缘对齐。样式Silverlight下拉列表/组合框
任何想法/例子?这很难做,还是我错过了什么?
感谢 迈克尔
不幸的是它不是你可以很容易做到的模板(除非你的控制是固定的大小和你不介意在模板中硬编码弹出偏移)。
有一个解决方案,它并不复杂,但:
<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;
}
}
你可以做的是使用MS Expression Blend中生成的组合框的默认模板。在模板中,你会发现一个名为弹出弹出,改变它的属性的FlowDirection以从右至左...
<Popup x:Name="Popup" FlowDirection="RightToLeft">
注意弹出内部的ScrollViewer对象将继承的FlowDirection设置,所以你必须明确地设置它的FlowDirection到LeftToRight。 ..
<ScrollViewer x:Name="ScrollViewer" BorderThickness="0" Padding="1" FlowDirection="LeftToRight">
...否则将从右至左填充和滚动条会在左侧。