首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以更改弹出窗口的对齐方式,使其显示在按钮的左侧而不是右侧?

是否可以更改弹出窗口的对齐方式,使其显示在按钮的左侧而不是右侧?
EN

Stack Overflow用户
提问于 2013-01-11 05:56:18
回答 2查看 4.1K关注 0票数 2

你有什么建议吗?我该怎么调这个位置?这是菜单:

下面是XAML:

代码语言:javascript
复制
<Canvas MinHeight="25" Panel.ZIndex="99">
<ToggleButton x:Name="btnPluginMenu" Content="CT" Width="48" Height="48" Canvas.Left="452" Canvas.Top="263"/>
<Popup Placement="Top" PlacementTarget="{Binding ElementName=btnPluginMenu}" IsOpen="{Binding ElementName=btnPluginMenu, Path=IsChecked}">
<Grid Background="Gray" Width="175" Height="130">
                    <Grid.BitmapEffect>
                        <DropShadowBitmapEffect />
                    </Grid.BitmapEffect>
 </Grid>
            </Popup>
</Canvas>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-11 06:29:09

MSDN中,可以使用Placement=Relative模式:

弹出式控件相对于PlacementTarget左上角的位置,其偏移量由HorizontalOffset和VerticalOffset属性值定义。如果屏幕边缘遮挡了弹出窗口,控件将重新定位自身以与屏幕边缘对齐。

换句话说,你可以这样做:

代码语言:javascript
复制
<ToggleButton x:Name="btnPluginMenu" Content="CT" Width="48" Height="48" Canvas.Left="452" Canvas.Top="263"/>
<Popup Placement="Relative"  HorizontalOffset="-120" VerticalOffset="-130" PlacementTarget="{Binding ElementName=btnPluginMenu}" IsOpen="{Binding ElementName=btnPluginMenu, Path=IsChecked}">

请注意负值HorizontalOffsetVerticalOffset的用法

票数 4
EN

Stack Overflow用户

发布于 2017-08-19 00:00:28

从按钮单击事件

代码语言:javascript
复制
private void button_Click(object sender, RoutedEventArgs e)
{
  Button button = sender as Button;
  popup.PlacementTarget = button;
  popup.HorizontalOffset = -120;
  popup.VerticalOffset = -130;
  popup.IsOpen = true;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14267986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档