尝试在Silverlight 4中设置下拉列表样式 - 我已成功完成所有视觉样式更改。让我难过的部分是我试图对齐控件的下拉(弹出)部分,以便下拉列表的右边缘与控件的右边缘对齐。默认值是左边缘与控件的左边缘对齐。
有什么想法/例子吗?这很难做到,还是我错过了什么?
感谢 迈克尔
答案 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填充,滚动条将在左侧。