微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight学习之---一

这是来公司做的第一个项目实例,也是头一次接触Silverlight。开始吧!

1.打开VS,创建新解决方案,选择Silverlight应用程序

因为Silverlight不能独立的运行,所以需要一个Web网站来承载。

2.MainPage.xaml是其首次运行时的页面,当然这个页面可以修改,那需要在App.xaml中进行相应的修改,在最后我会进行说明。先继续我们的实例

MainPage前台代码

<UserControl x:Class="SilverlightApplication8.MainPage"
    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:telerik="http://schemas.telerik.com/2008/xaml/presentation"
    mc:Ignorable="d" 
             
    
    xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" Foreground="#FF1453E2"  
    xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit">

    <UserControl.Resources>


        <DataTemplate  x:Key="celltemplate" >
            <StackPanel >
                <CheckBox  IsChecked="{Binding  Validated,Mode=TwoWay}" IsEnabled="{Binding  ValidatedEnable,Mode=TwoWay}"></CheckBox>
            </StackPanel>
        </DataTemplate>

        <DataTemplate x:Key="messageTemplate">
           
            <StackPanel>
               
                <StackPanel Orientation="Horizontal" Height="23">
                   
                    <TextBlock  Text="Title:" Width="40" VerticalAlignment="Center" />
                    
                    <TextBox Text="{Binding Path=Title}" Width="180"/>
                   
                    <TextBlock Text="By:" Width="30" VerticalAlignment="Center" />
                   
                    <TextBox Text="{Binding Path=OpenedBy}" Width="80"/>
                    
                    <TextBlock Text="At:" Width="30" VerticalAlignment="Center" />
                   
                    <TextBox Text="{Binding Path=OpenTime}" Width="80"/>
                    
                    <Button Content="Switch" Width="75" Margin="20,0 0" Click="Button_Click"/>
                    
                </StackPanel>
               
                <StackPanel x:Name="detailPanel" Orientation="Horizontal" Height="60" Visibility="Collapsed">
                   
                    <TextBox Margin="40,5,10,5" Text="{Binding Path=Content}" Width="400"/>
                    
                </StackPanel>
               
            </StackPanel>
            
        </DataTemplate>

    </UserControl.Resources>     <!--之前listBox的填充内容-->
    <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
        <StackPanel x:Name="LayoutRoot" Background="LightBlue"  VerticalAlignment="Center" HorizontalAlignment="Center" Width="800" Height="600" >
        
        
       
        <StackPanel Orientation="Horizontal">
            
            <TextBlock Text="Yin Ni Si BBS" FontSize="24" Margin="5" VerticalAlignment="Bottom"/>
           
            <TextBlock Text="Powered by: LYY" Width="200"  VerticalAlignment="Bottom" Margin="10"/>
            
            <telerik:RadButton Content="Load"  Height="23" Width="75" VerticalAlignment="Bottom" Margin="-80,10" Click="LoadButton_Click" Name="load" />
            
        </StackPanel>

           
        <!--<ListBox x:Name="listBox" Margin="10" Height="300" ItemTemplate="{StaticResource messageTemplate}"/>-->
        <!--<sdk:DataGrid  AutoGenerateColumns="False" Height="162" Name="dataGrid1" Width="484" IsReadOnly="True" BorderThickness="10" DataContext="{Binding}" SelectionChanged="dataGrid1_SelectionChanged" >
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn   Header="Title" Width="100" Binding="{Binding Title,Mode=TwoWay}" />
                <sdk:DataGridTextColumn Header="Author" Width="80" Binding="{Binding OpenedBy,Mode=TwoWay}" />
                <sdk:DataGridTextColumn Header="Time" Width="80" Binding="{Binding OpenTime,Mode=TwoWay}" />
                <sdk:DataGridTextColumn x:Name="nr"  Header="Content" Width="80" Binding="{Binding Content,Mode=TwoWay}" />
                <sdk:DataGridTextColumn  Header="Validated" Width="80" Binding="{Binding Validated,Mode=TwoWay}" />
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>-->
        <sdk:Label Height="28" Name="label1" Width="120" Margin="0,0" HorizontalAlignment="Left" Content="Detail:" FontSize="20" />

        <StackPanel x:Name="detailPane2" Orientation="Horizontal"  Visibility="Collapsed"   Height="200" HorizontalAlignment="Center">
                
                <StackPanel VerticalAlignment="Center" Height="160">
                    <StackPanel Orientation="Horizontal" Width="200">
                <TextBlock FontSize="15" VerticalAlignment="Center">Title:</TextBlock>
                <TextBox Width="100" Margin="27,0" Name="TextBox3" Height="32"></TextBox>
            </StackPanel>

                <StackPanel Orientation="Horizontal" Width="200">
                <TextBlock FontSize="15" VerticalAlignment="Center">Autor:</TextBlock>
                <TextBox Width="100" Margin="19,0" Name="TextBox4" Height="32"></TextBox>
            </StackPanel>

                <StackPanel Orientation="Horizontal" Width="200">
                <TextBlock FontSize="15" VerticalAlignment="Center">Time:</TextBlock>
                <telerik:RadDatePicker Margin="23,0" Width="100" DateTimeText="" Name="time1" Height="32"></telerik:RadDatePicker>
            </StackPanel>
                <StackPanel Orientation="Horizontal" Width="200">
                <TextBlock FontSize="15" VerticalAlignment="Center">Content:</TextBlock>
                <TextBox Width="100" Name="TextBox2" Height="32"></TextBox>
            </StackPanel>
                <StackPanel Orientation="Horizontal" Width="200">
                    <TextBlock FontSize="15" VerticalAlignment="Center">Age:</TextBlock>
                    <telerik:RadComboBox displayMemberPath="Age"      Width="100" Margin="31,0" x:Name="cboage" Height="32">
                        
                    </telerik:RadComboBox>
                    
                </StackPanel>
                </StackPanel>
<StackPanel VerticalAlignment="Center">
                    <telerik:RadButton Content="Modify" Height="40"  Width="50" Click="btnModify_Click" VerticalContentAlignment="Center"></telerik:RadButton>
                    <telerik:RadButton Content="Add" Height="40"  Width="50" Click="btnAdd_Click" VerticalContentAlignment="Center"></telerik:RadButton>
                    <telerik:RadButton Content="Delete" Height="40"  Width="50" Click="btnDelete_Click" VerticalContentAlignment="Center"></telerik:RadButton>
                    <telerik:RadButton x:Name="btnChangeValidated"  Height="40"  Width="50" Click="btnChangeValidate_Click"  Margin="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" HorizontalAlignment="Center" VerticalAlignment="Stretch">
                        <telerik:RadButton.Content>
                            <StackPanel  Width="50" Height="40" VerticalAlignment="Center" HorizontalAlignment="Center">
                                
                                <TextBlock x:Name="tbedit" TextAlignment="Center" HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0,0">Edit</TextBlock>
                                <TextBlock x:Name="tbvalidate" TextAlignment="Center" VerticalAlignment="Bottom">Validate</TextBlock>


                            </StackPanel>
                        </telerik:RadButton.Content>
                    </telerik:RadButton>
                </StackPanel>
            </StackPanel>
        <telerik:RadGridView ShowGroupPanel="False" IsFilteringallowed="False"  IsReadOnly="True"
							 AutoGenerateColumns="False"
							 CanUserFreezeColumns="False"
							 CanUserResizeColumns="False" Name="radgridview1" SelectionChanged="radgridview1_SelectionChanged" Width="732" Height="195" Margin="0,0">
            <telerik:RadGridView.Columns>
                    <telerik:GridViewDataColumn Width="100" Header="Title" DataMemberBinding="{Binding Title,Mode=TwoWay}"></telerik:GridViewDataColumn>
                <telerik:GridViewDataColumn Width="100" Header="Author" DataMemberBinding="{Binding OpenedBy,Mode=TwoWay}"></telerik:GridViewDataColumn>
                <telerik:GridViewDataColumn Width="100" Header="Time" DataFormatString="{} {0:yyyy-MM-dd}"    DataMemberBinding="{Binding OpenTime,Mode=TwoWay}"></telerik:GridViewDataColumn>
                <telerik:GridViewDataColumn Width="100" Header="Content" DataMemberBinding="{Binding Content,Mode=TwoWay}"></telerik:GridViewDataColumn>
                    <telerik:GridViewDataColumn Width="100" Header="Age" DataMemberBinding="{Binding Age,Mode=TwoWay}"></telerik:GridViewDataColumn>
                    <!--<telerik:GridViewDataColumn Width="100" Header="Validated" DataMemberBinding="{Binding Validated}"></telerik:GridViewDataColumn>-->
                    <!--<telerik:GridViewColumn Header="Change validated" Width="120">
                        <telerik:GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox  x:Name="abc" DataContext="{Binding Validated}"></CheckBox>
                            </DataTemplate>
                        </telerik:GridViewColumn.CellTemplate>
                </telerik:GridViewColumn>-->
                    <telerik:GridViewDataColumn Header="Change Validate"  DataMemberBinding="{Binding Validated,Mode=TwoWay}" CellTemplate="{StaticResource celltemplate}">
                        <!--<telerik:GridViewDataColumn.CellTemplate>
                            <DataTemplate >
                                <StackPanel >
                                    <CheckBox  IsChecked="{Binding  Validated,Mode=TwoWay}"></CheckBox>
                                </StackPanel>
                            </DataTemplate>
                        </telerik:GridViewDataColumn.CellTemplate>-->
                    </telerik:GridViewDataColumn>
                </telerik:RadGridView.Columns>
        </telerik:RadGridView>
            
        

    </StackPanel>
    </ScrollViewer>




</UserControl>

截图:

MainPage后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;
using System.Collections.ObjectModel;


namespace SilverlightApplication8
{
    public partial class MainPage : UserControl
    {
       
        

        public MainPage()
        {
            InitializeComponent();

            //getage();

            //Telerik.Windows.Controls.RadComboBoxItem comBox = new Telerik.Windows.Controls.RadComboBoxItem();
            
                //comBox.Content = "0-10";
                //this.age.Items.Add( comBox );
                //comBox=new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "10-20";
                //this.age.Items.Add( comBox );
                //comBox = new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "20-30";
                //this.age.Items.Add(comBox);
                //comBox = new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "30-40";
                //this.age.Items.Add(comBox);
                //comBox = new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "40-50";
                //this.age.Items.Add(comBox);
                //comBox = new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "50-60";
                //this.age.Items.Add(comBox);
                //comBox = new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "60-70";
                //this.age.Items.Add(comBox);
                //comBox = new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "70-80";
                //this.age.Items.Add(comBox);
                //comBox = new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "80-90";
                //this.age.Items.Add(comBox);
                //comBox = new Telerik.Windows.Controls.RadComboBoxItem();
                //comBox.Content = "90-100";
                //this.age.Items.Add(comBox);

        }



        private ObservableCollection<People> _listage = null;

        public static ObservableCollection<People> Getage()
        {


            ObservableCollection<People> listage = new ObservableCollection<People>();
            for (int i = 1; i <= 100; i++)
            {
                People msgage = new People()
                {

                    Age = i.ToString()
                };
                listage.Add(msgage);
            }
            return listage;
        }
        
       
        //public  void getage()
        //{
            
            
        //    for (int j = 1; j <= 100; j++)
        //    {
        //        Telerik.Windows.Controls.RadComboBoxItem comBoxitem = new Telerik.Windows.Controls.RadComboBoxItem();
        //        comBoxitem.Content = j;
        //        age.Items.Add(comBoxitem);
        //    }

            
            
        //}

        private ObservableCollection<People> _listPeople = null;

        public static ObservableCollection<People> GetPerson()
        {


            ObservableCollection<People> listPerson = new ObservableCollection<People>();
            for (int i = 0; i < 5; i++)
            {
                People msg1 = new People()
                {
                    Title = "Message Title " + i.ToString(),OpenedBy = (i % 2 == 0) ? "蓝天" : "白云",OpenTime = DateTime.Now,Content = (i % 2 == 0) ? "青山" : "绿水",Validated=true,Age="20"
                };
                listPerson.Add(msg1);
            }
            return listPerson;
        }


        private void Button_Click(object sender,RoutedEventArgs e)
        {
            Button b = sender as Button;
            StackPanel p = VisualTreeHelper.GetParent(b) as StackPanel;
            p = VisualTreeHelper.GetParent(p) as StackPanel;
            p = p.FindName("detailPanel") as StackPanel;
            if (p.Visibility == Visibility.Collapsed)
            {
                p.Visibility = Visibility.Visible;  
            }
            else
            {
                p.Visibility = Visibility.Collapsed;
            }


        }

        private void LoadButton_Click(object sender,RoutedEventArgs e)
        {
            /*List<Message> ppList = new List<Message>();
            for (int i = 0; i < 30; i++)
            {
                Message msg = new Message()
                {
                    Title = "Message Title " + i.ToString(),OpenTime = DateTime.Now.ToShortDateString(),Content = (i % 2 == 0) ? "青山" : "绿水"
                };
                ppList.Add(msg);
            }

            this.listBox.ItemsSource = ppList;*/






            //List<People> ok = new List<People>();
            //for (int i = 0; i < 5; i++)
            //{
            //    People msg1 = new People()
            //    {
            //        Title = "Message Title " + i.ToString(),//        OpenedBy = (i % 2 == 0) ? "蓝天" : "白云",//        OpenTime = DateTime.Now,//        Content = (i % 2 == 0) ? "青山" : "绿水"
            //    };
            //    ok.Add(msg1);
            //}

            //this.dataGrid1.ItemsSource = ok;
            //this.radgridview1.ItemsSource = ok;

            _listPeople = GetPerson();
            _listage = Getage();
            
            //this.dataGrid1.ItemsSource = _listPeople;
            this.radgridview1.ItemsSource = _listPeople;
            
            this.cboage.ItemsSource = _listage;
            this.load.Visibility = Visibility.Collapsed;


        }

        //private void LayoutRoot_MouseWheel(object sender,MouseWheelEventArgs e)
        //{
        //    if (e.Delta > 0)
        //    {向上 }
        //    else
        //    { 向下 }
        //}  

        //private void dataGrid1_SelectionChanged(object sender,SelectionChangedEventArgs e)
        //{
        //    //this.change.Visibility = Visibility.Collapsed;
            
        //    if (detailPane2.Visibility == Visibility.Collapsed)
        //    {
        //        detailPane2.Visibility = Visibility.Visible;
        //    }


        //    People a = this.dataGrid1.SelectedItem as People;
        //    if (a != null)
        //    {
        //        this.TextBox2.Text = a.Content;
        //        this.TextBox3.Text = a.Title;
        //        this.TextBox4.Text = a.OpenedBy;
        //        this.time1.SelectedValue = Convert.ToDateTime(a.OpenTime);
        //        this.validatedcheckBox.IsChecked = a.Validated;
        //    }
        //    else {
        //        this.TextBox2.Text = "";
        //        this.TextBox3.Text = "";
        //        this.TextBox4.Text = "";
        //        this.time1.SelectedValue = null;
        //        this.validatedcheckBox.IsChecked = false;
        //    }
            
        //}

        private void btnModify_Click(object sender,RoutedEventArgs e)
        {

            //People bc = this.dataGrid1.SelectedItem as People;
            //if (bc != null)
            //{
            //    bc.Content = this.TextBox2.Text;
            //    bc.Title = this.TextBox3.Text;
            //    bc.OpenedBy = this.TextBox4.Text;
            //    bc.OpenTime = Convert.ToDateTime(this.time1.SelectedValue);
            //    bc.Validated =Convert.ToBoolean( this.validatedcheckBox.IsChecked);
            //}

            People ad = this.radgridview1.SelectedItem as People;
           
      
            if (ad != null)
            {
                ad.Content = this.TextBox2.Text;
                ad.Title = this.TextBox3.Text;
                ad.OpenedBy = this.TextBox4.Text;
                ad.OpenTime = Convert.ToDateTime(this.time1.SelectedValue);

                ad.Age = Convert.ToString(this.cboage.Text);
            }  




                /*

                    List<People> ok1 = new List<People>();
                    //for (int i = 0; i < 5; i++)
                    //{
                        People msg12 = new People()
                        {
                            Title = this.TextBox3.Text,OpenedBy = this.TextBox4.Text,OpenTime = this.TextBox5.Text,Content = this.TextBox2.Text
                        };
                        ok1.Add(msg12);
                    //}

                    this.dataGrid1.ItemsSource = ok1;*/





            



            /* List<People> ok = new List<People>();
                     只显示更新后的一行数据
                         People msg12 = new People()
                         {
                             Title = this.TextBox3.Text,Content = this.TextBox2.Text
                         };
                         ok.Add(bc);
                    

                     this.dataGrid1.ItemsSource = ok;*/


        }

       

        private void btnAdd_Click(object sender,RoutedEventArgs e)
        {
                People bc = new People();
                bc.Content = this.TextBox2.Text;
                bc.Title = this.TextBox3.Text;
                bc.OpenedBy = this.TextBox4.Text;
                bc.OpenTime =Convert.ToDateTime(this.time1.SelectedValue);
                bc.Age = Convert.ToString(this.cboage.Text);
                bc.Validated = true;
                _listPeople.Add(bc);

                
            





            /*private void Button_Click_1(object sender,RoutedEventArgs e)

            {
                List<People> ok = new List<People>();
          
                foreach (object o in dataGrid1.ItemsSource)
                {
               
                  dataGrid1.SelectedItems.Add(o);

                }

                if (ok.Count > dataGrid1.SelectedItems.Count)
                {
                    for (int i = 0; i < dataGrid1.SelectedItems.Count; i++)
                    {
                        People people = dataGrid1.SelectedItems[0] as People;
                        ok.Remove(people);
                    }
                }
                else
                {
                    ok.Clear();
                }
            
            }*/
        }

        private void btnDelete_Click(object sender,RoutedEventArgs e)
        {
           
                //if (this.dataGrid1.SelectedItem is People)
                //{
                //    _listPeople.Remove(this.dataGrid1.SelectedItem as People);

                //}

                if (this.radgridview1.SelectedItem is People)
                {
                    _listPeople.Remove(this.radgridview1.SelectedItem as People);
                    
                }

                if (this.radgridview1.Items.Count < 1) 
                {
                    
                    _listPeople = GetPerson();
                    //this.dataGrid1.ItemsSource = _listPeople;
                    this.radgridview1.ItemsSource = _listPeople;
                }

           
        }

        private void radgridview1_SelectionChanged(object sender,Telerik.Windows.Controls.SelectionChangeEventArgs e)
        {
            
            if (detailPane2.Visibility == Visibility.Collapsed)
            {
                detailPane2.Visibility = Visibility.Visible;
                
            }


            People a = this.radgridview1.SelectedItem as People;
            
            if (a != null)
            {
                this.TextBox2.Text = a.Content;
                this.TextBox3.Text = a.Title;
                this.TextBox4.Text = a.OpenedBy;
                this.time1.SelectedValue = a.OpenTime;
                this.cboage.Text = Convert.ToString(a.Age);
                
            }
            else
            {
                this.TextBox2.Text = "";
                this.TextBox3.Text = "";
                this.TextBox4.Text = "";
                this.time1.SelectedValue = null;
                this.cboage.Text = "";
                
            }
        }

        private void btnChangeValidate_Click(object sender,RoutedEventArgs e)
        {

        //    //CheckBox checkBox1 = (CheckBox)VisualTreeHelper.GetChild(this.abc.LoadContent(),0);  


        //    StackPanel panel = this.abc.LoadContent() as StackPanel;
          
        //    CheckBox checkBox = panel.FindName("checkBox1") as CheckBox;
        //    if (checkBox.IsChecked == false)
        //    {
        //        checkBox.IsChecked = true;
        //    }
        //    else
        //    {
        //        checkBox.IsChecked = false;
        //    }
            /*
            if (this.radgridview1.SelectedItem is People)
            {
                People ac = this.radgridview1.SelectedItem as People;

                if (ac.ValidatedEnable == false)
                {
                    ac.ValidatedEnable = true;
                    
                   
                }
                else
                {
                    ac.ValidatedEnable = false;


                }
                if (ac.ValidatedEnable) btnChangeValidated.Content = "Save Validate";
                else btnChangeValidated.Content = "Edit Validate";



            }
            */

            if (_listPeople != null)
            {
                foreach (People pc in _listPeople)
                {
                    if (pc.ValidatedEnable == false)
                    {
                        pc.ValidatedEnable = true;
                    }
                    else
                    {
                        pc.ValidatedEnable = false;
                    }
                }
                if (tbedit.Text=="Edit" && tbvalidate.Text=="Validate")
                {
                    tbedit.Text = "Save";
                    tbvalidate.Text = "Validate";
                    //btnChangeValidated.Content = "Save Validate"; 
                   
                }
                else
                {
                    tbedit.Text = "Edit";
                    tbvalidate.Text = "Validate";
                    //btnChangeValidated.Content = "Edit Validate"; 
                }
            }



        }
    }

}
代码

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ComponentModel;
using System.Collections.ObjectModel;

namespace SilverlightApplication8
{
    public class People : INotifyPropertyChanged
    {

       
      



        private string _title;
        public string Title
        {
            get
            {
                return _title;
            }
            set
            {
                if (value != this._title)
                {
                    this._title = value;
                    NotifyPropertyChanged("Title");
                }
            }
        }
        private string _openedBy;
        public string OpenedBy {

            get
            {
                return _openedBy;
            }
            set
            {
                if (value != this._openedBy)
                {
                    this._openedBy = value;
                    NotifyPropertyChanged("OpenedBy");
                }
            }

             }
        private DateTime _opentime;
        public DateTime OpenTime
        {
            get
            {
                return _opentime;
            }
            set
            {
                if (value != this._opentime)
                {
                    this._opentime = value;
                    NotifyPropertyChanged("OpenTime");
                }
            }
        }
        private string _content;
        public string Content
        {
            get
            {
                return _content;
            }
            set
            {
                if (value != this._content)
                {
                    this._content = value;
                    NotifyPropertyChanged("Content");
                }
            }
        }
        private bool _Validated;
        public bool Validated
    {
        get
        {
            return _Validated;
        }
        set
        {
            if (value != this._Validated)
            {
                this._Validated = value;
                NotifyPropertyChanged("Validated");
            }
        }
    }

        private bool _ValidatedEnable;
        public bool ValidatedEnable
        {
            get
            {
                return _ValidatedEnable;
            }
            set
            {
                if (value != this._ValidatedEnable)
                {
                    this._ValidatedEnable = value;
                    NotifyPropertyChanged("ValidatedEnable");
                }
            }
        }

        private string _Age;
        public string Age
        {
            get
            {
                return _Age;
            }
            set
            {
                if (value != this._Age)
                {
                    this._Age = value;
                    NotifyPropertyChanged("Age");
                }
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;

        
        private void NotifyPropertyChanged(String propertyName = "")
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this,new PropertyChangedEventArgs(propertyName));
            }
        }
    }
}

其中有一些代码是被注释调的,虽然运行的时候没有什么作用,不过我觉得也是一种学习的方法,所以没有删除,知识注释,对功能没有任何影响。这个例子中用到的关键技术是在这个类文件里INotifyPropertyChanged接口,用来提供更改的通知,虽然不是很明白,不过确实很有用。

更改SL首次启动的界面的方法很简单,只要在App.xaml的代码里稍作修改即可:

 public partial class App : Application
    {
        Grid rootGrid = new Grid();
       
        private void Application_Startup(object sender,StartupEventArgs e)
        {
            this.RootVisual = rootGrid;
            this.rootGrid.Children.Add(new Login());//Login是要打开的第一个界面的名字
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐