C# 当WPF中的页面大小减小时弹出窗口
目前我正在开发WPF应用程序。在一个页面中,我有两个部分(例如part1 | Part2)。在part1中,我有项目列表,当我选择任何项目时,我将在Part2中获得该项目的详细信息。当我减小窗口页面的大小时,我希望该详细信息部分弹出。我如何实现这一点?请帮忙 简单、纯粹的WPF实现可以像这样工作: 视图:C# 当WPF中的页面大小减小时弹出窗口,c#,wpf,mvvm-light,C#,Wpf,Mvvm Light,目前我正在开发WPF应用程序。在一个页面中,我有两个部分(例如part1 | Part2)。在part1中,我有项目列表,当我选择任何项目时,我将在Part2中获得该项目的详细信息。当我减小窗口页面的大小时,我希望该详细信息部分弹出。我如何实现这一点?请帮忙 简单、纯粹的WPF实现可以像这样工作: 视图: 还有一些逻辑: private const int MaxXToPopup = 300; private Window _popup; public MainWindow() {
还有一些逻辑:
private const int MaxXToPopup = 300;
private Window _popup;
public MainWindow()
{
InitializeComponent();
}
protected override void OnRenderSizeChanged( SizeChangedInfo sizeInfo )
{
if ( ShouldDisplayInPopup() )
{
DetachPartTwo();
OpenPopup();
}
else if ( ShouldDisplayInGrid() )
{
ClosePopup();
ShowPartTwo();
}
base.OnRenderSizeChanged( sizeInfo );
}
private void ClosePopup()
{
_popup.Content = null;
_popup.Close();
_popup = null;
}
private void OpenPopup()
{
_popup = new Window {Content = PartTwo};
_popup.Show();
}
private void ShowPartTwo()
{
PartTwoContainer.Children.Add( PartTwo );
}
private void DetachPartTwo()
{
PartTwoContainer.Children.Remove( PartTwo );
}
private bool ShouldDisplayInGrid()
{
return _popup != null && RenderSize.Width > MaxXToPopup;
}
private bool ShouldDisplayInPopup()
{
return _popup == null && RenderSize.Width < MaxXToPopup;
}
private const int MaxXToPopup=300;
私人窗口弹出窗口;
公共主窗口()
{
初始化组件();
}
受保护的覆盖无效OnRenderSizeChanged(SizeChangedInfo sizeInfo)
{
if(ShouldDisplayInPopup())
{
第二部分();
OpenPopup();
}
else if(ShouldDisplayInGrid())
{
ClosePopup();
showPart2();
}
base.OnRenderSizeChanged(sizeInfo);
}
私有void ClosePopup()
{
_popup.Content=null;
_popup.Close();
_弹出=空;
}
私有void OpenPopup()
{
_弹出=新窗口{Content=PartTwo};
_popup.Show();
}
第二部分()
{
PartTwoContainer.Children.Add(PartTwo);
}
第二部分()
{
PartTwoContainer.Children.Remove(PartTwo);
}
private bool should displayingrid()
{
返回_popup!=null&&RenderSize.Width>maxxtopoppup;
}
private bool ShouldDisplayInPopup()
{
return _popup==null&&RenderSize.Width
在实施此行为时,您是否遇到任何特殊问题?不起作用的代码?否则,此问题格式不符合SO要求。
private const int MaxXToPopup = 300;
private Window _popup;
public MainWindow()
{
InitializeComponent();
}
protected override void OnRenderSizeChanged( SizeChangedInfo sizeInfo )
{
if ( ShouldDisplayInPopup() )
{
DetachPartTwo();
OpenPopup();
}
else if ( ShouldDisplayInGrid() )
{
ClosePopup();
ShowPartTwo();
}
base.OnRenderSizeChanged( sizeInfo );
}
private void ClosePopup()
{
_popup.Content = null;
_popup.Close();
_popup = null;
}
private void OpenPopup()
{
_popup = new Window {Content = PartTwo};
_popup.Show();
}
private void ShowPartTwo()
{
PartTwoContainer.Children.Add( PartTwo );
}
private void DetachPartTwo()
{
PartTwoContainer.Children.Remove( PartTwo );
}
private bool ShouldDisplayInGrid()
{
return _popup != null && RenderSize.Width > MaxXToPopup;
}
private bool ShouldDisplayInPopup()
{
return _popup == null && RenderSize.Width < MaxXToPopup;
}