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

C# 我是否可以更改弹出窗口的对齐方式,使其显示在按钮的左侧而不是右侧?,c#,wpf,xaml,popup,togglebutton,C#,Wpf,Xaml,Popup,Togglebutton,关于我如何改变这个职位有什么想法吗?这是菜单: 下面是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

关于我如何改变这个职位有什么想法吗?这是菜单:

下面是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>

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

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

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

<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}">


请注意,在单击按钮的事件中,使用了负值
水平偏移
垂直偏移

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;
}