我有一个简单的弹出控件,我想在我的 wpf 应用程序中使用它作为 contextmenu,但它的 isOpen 属性始终显示为 false 并且我的弹出窗口没有显示。我尝试在 xaml 以及通过我的代码中更改它,但都是徒劳的。谁能告诉我为什么会发生这种意外行为?
<Grid>
<StackPanel>
<Popup x:Name="contextMenu" IsOpen="True" StaysOpen="False">
<Grid>
<Border BorderBrush="Black"
BorderThickness="2"
CornerRadius="3"
Background="AliceBlue">
<ListBox Name="ContextMenuList"
HorizontalAlignment="Stretch"
SelectionChanged="ContextMenuListSelectionChanged" />
ItemsSource="{Binding Path=ContextMenuListBinding}"
SelectedItem="{Binding Path=ContextMenuListBinding,
Mode=OneWay}"
</Border>
</Grid>
</Popup>
</StackPanel>
</Grid>
public void PositionContextMenu()
{
contextMenu.PlacementRectangle = new Rect(700, 250, 40, 30);
contextMenu.Placement = PlacementMode.Absolute;
contextMenu.IsOpen = true;
}
当我调试我的代码 contextmenu.Isopen 时,它的值总是显示为 false。
对函数的调用是在 MouseLeftbuttonDown 事件中进行的:-
void MapMouseLeftButtonDownCommand(MouseEventArgs e)
{
var mycontextmenu = new MyContextMenu();
mycontextmenu.PositionContextMenu();
}
MyContextMenu 是包含我的弹出窗口的控件。