我想在wpf中得到如下效果
主窗口如下所示 当你点击好友面板时,好友列表应该会展开到窗口外
当我单击该列表中的项目时,我必须能够捕获该事件并在主窗口中处理 如何在 wpf 中实现?
我试过使用扩展器,但它没有显示不适合窗口大小的内容。只是显示部分内容
最佳答案
您可以使用 Popup
控件并根据单击的 Button 设置其 PlacementTarget
和 Placement
。简单示例:
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Popup StaysOpen="False" Width="300" Height="200" x:Name="MyPopup">
<Popup.Child>
<StackPanel Background="Bisque"></StackPanel>
</Popup.Child>
</Popup>
<Button Margin="25,25,0,25" HorizontalAlignment="Right" Width="100" Click="ButtonBase_OnClick">First</Button>
<Button Grid.Row="1" Margin="25,25,0,25" HorizontalAlignment="Right" Width="100" Click="ButtonBase_OnClick">Second</Button>
<Button Grid.Row="2" Margin="25,25,0,25" HorizontalAlignment="Right" Width="100" Click="ButtonBase_OnClick">Third</Button>
</Grid>
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
MyPopup.IsOpen = false;
MyPopup.PlacementTarget = sender as UIElement;
MyPopup.Placement = PlacementMode.Right;
MyPopup.AllowsTransparency = true;
MyPopup.PopupAnimation = PopupAnimation.Fade;
MyPopup.IsOpen = true;
}
关于c# - WPF 将内容展开到窗口外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26878389/