C# 正在向上扩展silverlight组合框控件?

C# 正在向上扩展silverlight组合框控件?,c#,.net,silverlight,combobox,C#,.net,Silverlight,Combobox,有没有办法在silverlight中将combobox控件的扩展方向改为上部而不是下部 我的意思是,youtube的视频质量组合框是从下到上打开的(选择240p、340p等的组合框)。。如果我将组合框放在布局的底部,默认情况下是向上打开的,但是有没有办法在其他地方实现这一点?您需要使用附加的行为,因为组合框的Silverlight弹出控件没有Placement属性。以下是此类行为的一个例子: 然后,您所要做的就是应用样式,将行为附加到弹出窗口: <Style x:Key="ComboBox

有没有办法在silverlight中将combobox控件的扩展方向改为上部而不是下部


我的意思是,youtube的视频质量组合框是从下到上打开的(选择240p、340p等的组合框)。。如果我将组合框放在布局的底部,默认情况下是向上打开的,但是有没有办法在其他地方实现这一点?

您需要使用附加的行为,因为组合框的Silverlight弹出控件没有Placement属性。以下是此类行为的一个例子:

然后,您所要做的就是应用样式,将行为附加到弹出窗口:

<Style x:Key="ComboBoxStyle1" TargetType="ComboBox">
    ... snip ...
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ComboBox">
                <Grid>
                    ... snip ...

                    <!-- Attach behaviour here! -->
                    <Popup x:Name="Popup">
                        <Border x:Name="PopupBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" HorizontalAlignment="Stretch" Height="Auto">
                            <Border.Background>
                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                    <GradientStop Color="#FFFFFFFF" Offset="0"/>
                                    <GradientStop Color="#FFFEFEFE" Offset="1"/>
                                </LinearGradientBrush>
                            </Border.Background>
                            <ScrollViewer x:Name="ScrollViewer" BorderThickness="0" Padding="1">
                                <ItemsPresenter/>
                            </ScrollViewer>
                        </Border>
                    </Popup>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>

... 剪
... 剪

谢谢您的帮助!!它确实给了我洞察力,你给我的链接非常棒,但我无法实现向上扩展的弹出窗口。我在链接和您的代码中实现了它,但无法实现。另外,我有点怀疑,如果combobox中有1个以上的项目,弹出窗口是否会扩展到实际的combobox控件本身。你可以根据combobox的高度来计算偏移量,所以我不会担心这个部分。实际上,我正试着避开那个部分,并寻找一个黑客,但就可读性和未来使用而言,实现我自己的附加行为似乎是一个更好的选择。我想我会的,谢谢你的帮助,克劳斯!