C#-WPF-UserControl实例(在ContentControl容器中切换两个UserControl页面)
·
注意:
d:DesignHeight="450" d:DesignWidth="800" 与 Height="450" Width="750" 区别
在UserControl(子窗体) 使用 d:DesignHeight d:DesignWidth时,UserControl(子窗体)的大小会随着ContentControl容器(父窗体)大小改变而改变,子窗体原有的布局也改变,比如主窗体最大化, 不推荐。
UserControl(子窗体)尽量使用Height Width。
<UserControl x:Class="Wpf_Math.MyFilter_Gaussian.UC_GaussianFilter"
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:Wpf_Math.MyFilter_Gaussian"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" 此行删除
Height="450" Width="750"
Background="LightBlue">
也可组合使用
例1 d:DesignHeight="450" Width="750"
例2 d:DesignWidth="800" Height="450"
1.新建UserControl


可看到刚刚新建的文件UserControl页面,同样的方法再建UserControl页面



2.主窗口切换UserControl页面
按两个按键切换UserControl页面

<Button x:Name="btn_kaimanfilter" Content="卡尔曼滤波" Height="30" Click="btn_Click"></Button> <Button x:Name="btn_gaussianfilter" Content="高斯滤波" Height="30" Click="btn_Click"> </Button> <!-- 我是工作区域 --> <ContentControl x:Name="contentControl_workSpace" Background="LightBlue"> <ContentControl.LayoutTransform> <ScaleTransform ScaleX="1" ScaleY="1"/> </ContentControl.LayoutTransform> </ContentControl>
using System.Diagnostics;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Wpf_Math.MyFilter_Gaussian;
using Wpf_Math.MyFilter_Kalman;
namespace Wpf_Math
{
public partial class MainWindow : Window
{
UC_GaussianFilter uC_GaussianFilter;
UC_KalmanFilter uC_KalmanFilter;
public MainWindow()
{
InitializeComponent();
uC_GaussianFilter = new UC_GaussianFilter();
uC_KalmanFilter = new UC_KalmanFilter();
}
private void btn_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
Debug.Write("你点击了"+ button.Name + "\r\n");
switch (button.Name)
{
case "btn_kaimanfilter": {
//切换界面1
contentControl_workSpace.Content = uC_KalmanFilter;
break;
}
case "btn_gaussianfilter": {
//切换界面2
contentControl_workSpace.Content = uC_GaussianFilter;
break;
}
default: break;
}
}
}
}
更多推荐
所有评论(0)