C# wpf程序

这篇具有很好参考价值的文章主要介绍了C# wpf程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

--App.xaml

namespace WpfMyproject
{
    /// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    public partial class App : PrismApplication
    {
        protected override Window CreateShell()
        {
            return Container.Resolve<MainView>();
        }

        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            第二种方式
            //containerRegistry.RegisterForNavigation<AutoView>();
            //containerRegistry.RegisterForNavigation<ManuView>();
            //containerRegistry.RegisterForNavigation<SetView>();
            //containerRegistry.RegisterForNavigation<ParameterView>();
            //containerRegistry.RegisterForNavigation<StatisticView>();
            //containerRegistry.RegisterForNavigation<AlarmView>();
            //containerRegistry.RegisterForNavigation<UserView>();
        }

        protected override IModuleCatalog CreateModuleCatalog()
        {
            return new DirectoryModuleCatalog() {ModulePath = @".\Modules" };
        }
    }
}

--MainView.xaml

    <Window.Resources>
        <Style x:Key="MenuButtonStyle" TargetType="Button">
            <Setter Property="Margin" Value="5,5"/>
            <Setter Property="Width" Value="100"/>
            <Setter Property="Height" Value="60"/>
            <Setter Property="FontSize" Value="20"/>
            <Setter Property="Foreground" Value="White"/>
            <Setter Property="Background" Value="#666666"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
        </Style>
    </Window.Resources>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="100"/>
            <RowDefinition/>
            <RowDefinition Height="60"/>
        </Grid.RowDefinitions>

        <Border Grid.Row="0" Background="#333366"/>
        <Border Grid.Row="2" Background="#cccccc"/>
        <Border Grid.Row="3" Background="Green"/>

        <Grid Grid.Row="0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="100"/>
                <ColumnDefinition/>
                <ColumnDefinition Width="200"/>
            </Grid.ColumnDefinitions>

            <StackPanel Grid.Column="0">
                <TextBlock Margin="0,40" Text="图片" Width="100" FontSize="30" Foreground="Yellow" />
            </StackPanel>

            <StackPanel Grid.Column="2">
                <TextBlock Margin="0,20" Text="当前登录用户:" FontSize="18" Foreground="Purple"/>
            </StackPanel>

            <Grid Grid.Column="1">
                <Grid.RowDefinitions>
                    <RowDefinition Height="40"/>
                    <RowDefinition/>
                </Grid.RowDefinitions>

                <StackPanel Grid.Row="0">
                    <TextBlock Margin="0,5" Text="智能控制系统" Width="100" FontSize="20" Foreground="White"/>
                </StackPanel>

                <StackPanel Grid.Row="1" Orientation="Horizontal">
                    <Button Style="{StaticResource MenuButtonStyle}" Content="自动" Command="{Binding OpenCommand}" CommandParameter="AutoView"/>
                    <Button Style="{StaticResource MenuButtonStyle}" Content="手动" Command="{Binding OpenCommand}" CommandParameter="ManuView"/>
                    <Button Style="{StaticResource MenuButtonStyle}" Content="设置" Command="{Binding OpenCommand}" CommandParameter="SetView"/>
                    <Button Style="{StaticResource MenuButtonStyle}" Content="参数" Command="{Binding OpenCommand}" CommandParameter="ParameterView"/>
                    <Button Style="{StaticResource MenuButtonStyle}" Content="统计" Command="{Binding OpenCommand}" CommandParameter="StatisticView"/>
                    <Button Style="{StaticResource MenuButtonStyle}" Content="报警" Command="{Binding OpenCommand}" CommandParameter="AlarmView"/>
                    <Button Style="{StaticResource MenuButtonStyle}" Content="登录" Command="{Binding OpenCommand}" CommandParameter="UserView"/>
                </StackPanel>
            </Grid>
        </Grid>

        <!--//第一种方式-->
        <!--<ContentControl Grid.Row="1" Content="{Binding Body}"/>-->
        
        <!--//第二种方式-->
        <ContentControl Grid.Row="1" prism:RegionManager.RegionName="ContentRegion"/>
    </Grid>


--MainViewModel

namespace WpfMyproject.ViewModels
{
    public class MainViewModel : BindableBase
    {
        //第一种方式
        //public DelegateCommand<string> OpenCommand { get; private set; }

        //public MainViewModel()
        //{
        //    OpenCommand = new DelegateCommand<string>(Open);
        //}

        //private object body;
        //public object Body
        //{
        //    get { return body; }
        //    set { body = value; RaisePropertyChanged(); }
        //}

        //private void Open(string obj)
        //{
        //    switch (obj)
        //    {
        //        case "AutoView": Body = new AutoView(); break;
        //        case "ManuView": Body = new ManuView(); break;
        //        case "SetView": Body = new SetView(); break;
        //        case "ParameterView": Body = new ParameterView(); break;
        //        case "StatisticView": Body = new StatisticView(); break;
        //        case "AlarmView": Body = new AlarmView(); break;
        //        case "UserView": Body = new UserView(); break;
        //    }
        //}

        //第二种方式
        private readonly IRegionManager regionManager;

        public DelegateCommand<string> OpenCommand { get; private set; }

        public MainViewModel(IRegionManager regionManager)
        {
            OpenCommand = new DelegateCommand<string>(Open);
            this.regionManager = regionManager;
        }

        private void Open(string obj)
        {
            regionManager.Regions["ContentRegion"].RequestNavigate(obj);
        }
    }
}文章来源地址https://www.toymoban.com/news/detail-629331.html

到了这里,关于C# wpf程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 你们眼睛干涩,胀痛吗?C# WPF 久坐提醒桌面小程序 - 内附 眼肌运动高清图

    目录 说明 设置提醒时间,及休息时间 久坐提醒倒计时 休息提醒倒计时 休息到计时 代码说明 主窗体设置 工作到计时 休息倒计时 源码 高清图 久坐提醒桌面小程序: 干这行职业病比较多,之前用爱丽(即:玻璃酸钠滴眼液),用的时候挺舒服,缓解吧,不过治标不治本。

    2024年02月14日
    浏览(29)
  • 你们眼睛干涩,胀痛吗?C# WPF 久坐提醒桌面小程序 - 内附 眼肌运动、远视力表高清图

    目录 说明 设置提醒时间,及休息时间 久坐提醒倒计时 休息提醒倒计时 休息到计时 代码说明 主窗体设置 工作到计时 休息倒计时 源码 高清图 久坐提醒桌面小程序: 干这行职业病比较多,之前用爱丽(即:玻璃酸钠滴眼液),用的时候挺舒服,缓解吧,不过治标不治本。

    2024年02月14日
    浏览(25)
  • C# WPF布局

    布局: 1、Grid: Window x:Class=\\\"WpfApp2.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-compatibili

    2024年04月22日
    浏览(39)
  • C# WPF编程-布局

    WPF窗口只能包含单个元素。为在WPF窗口中放置多个元素并创建更贴近实用的用户界面,需要在窗口上放置一个容器,然后在这个容器中添加其他元素。 造成这一限制的原因是Window类继承自ContentControl类。 在WPF窗口布局需要遵循以下几条重要原则: 不应显示设定元素的尺寸 :

    2024年03月25日
    浏览(38)
  • C# WPF 数据绑定

    后台变量发生改变,前端对应的相关属性值也发生改变 接口 INotifyPropertyChanged 用于通知客户端(通常绑定客户端)属性值已更改。 官方示例代码如下 示例演示 before after 本示例提供了多种绑定方式,使用接口进行绑定,不使用接口进行绑定 1.在MainWindow中进行属性更改 2.在

    2024年02月02日
    浏览(44)
  • c# wpf Template ContentTemplate

    1.概要 1.1 定义内容的外观 2.2 要点分析 2.代码 3.运行结果

    2024年04月09日
    浏览(40)
  • c# wpf MultiTrigger 简单试验

    1.概要 2.代码 3.试验结果

    2024年04月10日
    浏览(31)
  • c# wpf XmlDataProvider 简单试验

    1.概要 2.代码 3.试验结果

    2024年04月10日
    浏览(36)
  • C#学习(十)——WPF重构与美化

    特点:【跨平台】,【建模】,【查询、更改、保存】,【并发】,【事务】,【缓存】,【数据迁移】 EF的组件 项目延续C#学习(九)的 项目代码,以此基础进行进一步重构 所需的NuGet包如下: 逆向数据库获得数据模型(Model) 首先在根目录下创建Models文件夹,然后使用Tools-

    2024年01月25日
    浏览(38)
  • C# wpf 获取控件刷新的时机

    做wpf开发不像mfc控件的刷新相对同步,wpf的控件改变宽高或者可见性后在下一行代码不会立刻看到效果,而且也没有一种事件可以获取确切的界面刷新后的时机。如果只是进行延迟等待,在不同机器效果是不同的,而且也并没有具体标识说明已刷新界面,这就导致某些场景的

    2024年01月17日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包