在WPF中实现子窗口

问题描述 投票:0回答:2

这有点尴尬,但我对 wpf 很陌生。 我想在父窗口内实现一个子窗口,它可以在整个窗口内移动和拖动。 到目前为止,我已经看过很多博客,但它们都非常复杂,并且在其中部署我的代码并不容易。 在这里我尝试以简单的方式实现,

xaml:

<Window x:Class="Project_Explorer.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wpfx="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit/extended"
        Title="Project Explorer">
 <Grid>
    <wpfx:ChildWindow Name="PopupChildWindow" Caption="Child Window" Height="200" IsModal="True" Margin="105,0,0,47" Width="306" HorizontalAlignment="Left" VerticalAlignment="Bottom" / >           
 </Grid>
</window>

请不要向我推荐任何帖子或网站。 只需提供一个实现子窗口的小演示 xaml 和 xaml.cs 文件即可。

c# wpf childwindow
2个回答
1
投票

尝试 FloatingWindow/FloatingWindowHost - 您可以在 CodeProject.com 上找到原始版本,或者您也可以获取我的更新版本,该版本还添加了 FloatingWindowHostZUI(带有缩放和其他额外功能),并且我主要将 WPF 和 Silverlight 版本合并到一起代码(原始版本有单独的实现)。

请在 http://ClipFlair.codeplex.com 查看该库的我的版本(获取源代码并签出源代码中的 Client/ZUI 文件夹,那里的 FloatingWindow 和 FloatingWindowZUI 文件夹中有单独的解决方案可用 [第二个使用项目从第一个开始])

请注意,这些不是扩展 Window 类,但您可以将代码创建为 UserControl 并将其托管在 FloatingWindow 中,或者创建 FloatingWindow 子类并直接将代码放入其中。

您可以在 http://ClipFlair.net 尝试 FloatingWindow,点击那里的 Studio 链接,然后打开教程活动。使用 FloatingWindowHost 工具栏中的“缩放”滑块进行操作。还可以使用标题栏上的扳手按钮翻转窗口,并在后面设置它们的属性,例如它们各自的缩放(比例)。


0
投票

听起来您正在描述一个对话框。通常,您的子窗口可以通过拖动标题栏来“移动和拖动”,对吧?这在标准 WPF 中可用。它可以是模态的(等待响应)或非模态的(您可以在子窗口仍然打开时使用主窗口)。

XAML 和 .cs 代码可在此处获取:

https://learn.microsoft.com/en-us/dotnet/desktop/wpf/windows/dialog-boxes-overview?view=netdesktop-8.0

© www.soinside.com 2019 - 2024. All rights reserved.