2

关于如何移动位置的任何想法?这是菜单:

在此处输入图像描述

这是 XAML:

<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>
4

2 回答 2

4

MSDN您可以使用以下Placement=Relative模式:

Popup 控件相对于 PlacementTarget 左上角的位置,偏移量由 Horizo​​ntalOffset 和 VerticalOffset 属性值定义。如果屏幕边缘遮挡了 Popup,则控件会重新定位自身以与屏幕边缘对齐。

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

<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

于 2013-01-10T22:29:09.083 回答
-1

从按钮单击事件

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;
}
于 2017-08-18T16:00:28.433 回答