zoukankan      html  css  js  c++  java
  • Caliburn.Micro代码示例

    App.xaml

    <Application x:Class="WpfApp1.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:local="clr-namespace:WpfApp1"
                  >
        <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary>
                        <local:HelloBootstrapper x:Key="bootstrapper" />
                    </ResourceDictionary>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>
    </Application>
    View Code
    using Caliburn.Micro;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    
    namespace WpfApp1
    {
       public class HelloBootstrapper:BootstrapperBase
        {
            public HelloBootstrapper()
            {
                Initialize();
            }
    
            protected override void OnStartup(object sender, StartupEventArgs e)
            {
                DisplayRootViewFor<ShellViewModel>();
            }
        }
    }
    View Code

    HelloBootstrapper类

    using Caliburn.Micro;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    
    namespace WpfApp1
    {
       public class HelloBootstrapper:BootstrapperBase
        {
            public HelloBootstrapper()
            {
                Initialize();
            }
    
            protected override void OnStartup(object sender, StartupEventArgs e)
            {
                DisplayRootViewFor<ShellViewModel>();
            }
        }
    }
    View Code

    ShellView.xaml

    <UserControl x:Class="WpfApp1.ShellView"
                 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:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
                 xmlns:cal="http://www.caliburnproject.org"
                 xmlns:local="clr-namespace:WpfApp1"
                 mc:Ignorable="d" 
                 d:DesignHeight="800" d:DesignWidth="800">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="50*"/>
                <RowDefinition Height="50*"/>
                <RowDefinition Height="50*"/>
                <RowDefinition Height="50*"/>
               
                <RowDefinition Height="10*"/>
                <RowDefinition Height="10*"/>
            </Grid.RowDefinitions>
    
            <StackPanel>
                <!--<RepeatButton Name="IncrementCount" Content="Up" Margin="15" VerticalAlignment="Top" />-->
                <!--<RepeatButton Content="Up" Margin="15"  Grid.Row="3" VerticalAlignment="Top">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Click">
                            --><!--<cal:ActionMessage MethodName="IncrementCount" />--><!--
                            <cal:ActionMessage MethodName="IncrementCount">
                                <cal:Parameter Value="1" />
                            </cal:ActionMessage>
                        </i:EventTrigger>
                        
                    </i:Interaction.Triggers>
                    
                </RepeatButton>-->
                <RepeatButton Content="Up" Margin="15" Grid.Row="3" VerticalAlignment="Top"
                  cal:Message.Attach="[Event Click] = [Action IncrementCount]" Background="Red"/>
                <TextBlock Grid.Row="0" Name="Count" Margin="20" FontSize="150" VerticalAlignment="Center" HorizontalAlignment="Center" />
                <TextBox Grid.Row="1" x:Name="Name"></TextBox>
                <Button Grid.Row="2" Height="40" x:Name="SayHello" Content="Click Me"></Button>
                <UniformGrid Grid.Row="3" VerticalAlignment="Bottom">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="50*"/>
                            <ColumnDefinition Width="50*"/>
                            <ColumnDefinition Width="50*"/>                      
                        </Grid.ColumnDefinitions>
                    </Grid>
                    <Slider Name="Delta" Minimum="0" Maximum="5" Margin="15" />
                    <Button Name="IncrementCount" Content="Increment" Margin="15" />
                </UniformGrid>
    
            </StackPanel>
        </Grid>
    </UserControl>
    View Code

    ShellView.xaml.cs这个文件是默认的

    ShellViewModel

    using Caliburn.Micro;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    
    namespace WpfApp1
    {
        public class ShellViewModel:PropertyChangedBase
        {
            string name;
         public string Name
            {
                get { return name; }
                set { name = value;
                    NotifyOfPropertyChange(() => Name);
                    NotifyOfPropertyChange(() => CanSayHello);
                }
            }
            public bool CanSayHello
            {
                get { return !string.IsNullOrWhiteSpace(Name); }
            }
            public void SayHello()
            {
                MessageBox.Show(string.Format("Hello{0}!", Name));
            }
    
            private int _count = 50;
    
            public int Count
            {
                get { return _count; }
                set
                {
                    _count = value;
                    NotifyOfPropertyChange(() => Count);
                    NotifyOfPropertyChange(() => CanIncrementCount);
                }
            }
    
            public void IncrementCount()
            {
                Count++;
            }
    
            public void IncrementCount(int delta)
            {
                Count += delta;
            }
            public bool CanIncrementCount
            {
                get { return Count < 100; }
            }
        }
    }
    View Code
  • 相关阅读:
    常用的Javascript设计模式
    jQuery动画高级用法——详解animation中的.queue()函数
    区分苹果Safari浏览器
    自定义 placeholder 文本颜色
    Three.js资源
    动态添加样式表规则
    GitHub 上一份很受欢迎的前端代码优化指南
    [转载]盒模型display:-webkit-box;的使用
    CSS3 Background-size
    Ubuntu上安装torque过程
  • 原文地址:https://www.cnblogs.com/aijiao/p/11104120.html
Copyright © 2011-2022 走看看