c# - 显示从另一个用户控件 WPF C# 触发的用户控件?
问题描述
我在 c# 中有一个 WPF 应用程序我有两个用户控件和主窗口,我的第一个用户控件是 usercontrol1,它通过一个按钮和事件单击来保存我的菜单,我在我的主窗口名称 uscholder 上有一个网格来加载我发送的 usercontrol2从我的 usercontrol1 上的按钮的事件单击中。
这是我的 usercontrol1.cs
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
UserControl2 usc = new UserControl2();
MainWindow maingrid = new MainWindow();
if (maingrid.uscholder != null)
{
maingrid.uscholder.Children.Clear();
maingrid.uscholder.Children.Add(usc);
}
else
{
maingrid.uscholder.Children.Add(usc);
}
}
}
这是我的 XAML
<Window x:Class="WpfApp5.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp5"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid >
<local:UserControl1 HorizontalAlignment="Left" Width="262"></local:UserControl1>
<Grid x:Name="uscholder" Margin="267,0,-0.4,0"/>
</Grid>
</Window>
这是我的用户控件 XAML
<UserControl x:Name="use1" x:Class="WpfApp5.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp5"
mc:Ignorable="d"
d:DesignHeight="450" Width="226.303">
<Grid Margin="0,0,0.4,-0.4">
<Button Content="Button" HorizontalAlignment="Left" Margin="42,166,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
</Grid>
</UserControl>
解决方案
在您的主窗口上使用“FindControl”功能并按 UserControl 名称搜索以访问每个窗口的实例。之后,您可以直接控制每个 UserControl 并执行选择或捕获按钮单击。
推荐阅读
- docker - 遵循 docker 教程,但教程和实际输出不同
- node.js - AWS Elastic Beanstalk - 找不到模块“hapi”
- python - Python,在循环中检测 id 和 name
- java - 我被要求使用 * 来打印“DJE”。结果不正常。我该如何解决?
- python - 使用 pyspark 过滤数组中基于 RDD 的值
- java - 我想在 jTable 的一个单元格中添加几行
- c++ - OpenCV cmake 构建总是在 Windows 中抛出错误
- sql - 带有 JOINS 的 PostgreSQL 反向查询
- ios - TableView 单元格未更新
- html - 使用 JSON 数据的 Angularjs 复选框多重过滤器