彩世界开奖app官网-彩世界平台官方网址(彩票平台)
做最好的网站
来自 计算机编程 2019-11-14 17:00 的文章
当前位置: 彩世界开奖app官网 > 计算机编程 > 正文

Silverlight中的大旨设置彩世界开奖app官网

 

xmlns:Theme="clr-namespace:System.Windows.Controls.Theming;assembly=System.Windows.Controls.Theming.Toolkit"

PresentationFramework.dll

1、注册控件:regsvr32 C:WindowsSystem32mstscax.dll。

         彩世界开奖app官网 1     其时间效益果就跟第生机勃勃种分化等了,它能够决定到应用宗旨的控件。

那全部更基本成分,有超级大大概重用在WPF之外,诸如DispatcherObject和DependencyObject,它们推荐依赖属性的焦点架构。

2、增多福特ExplorerDP Control控件到工具箱中。作者选拔的CR-VDP Client Control (redistributable) - version 9

       public void LoadTheme()

        {

            this.listBox1.Items.Add(new ComboBoxItem() { Content = "TwilightBlue", Name = "TwilightBlue", DataContext = "Themes/TwilightBlue.xaml", IsEnabled = true });

            this.listBox1.Items.Add(new ComboBoxItem() { Content = "RainierOrange", Name = "RainierOrange", DataContext = "Themes/RainierOrange.xaml",IsEnabled = true });           

            this.listBox1.SelectionChanged  =

                (obj, e) =>

                {

                    if (e != null)

                    {

                        StackPanel stack = new StackPanel();

                        Button btn = new Button();

                        stack.Children.Add(btn);

                        this.LayoutRoot.Children.Clear();

                        this.LayoutRoot.Children.Add(stack);

                        Uri uri = new Uri((this.listBox1.SelectedItem as ComboBoxItem).DataContext.ToString(), UriKind.RelativeOrAbsolute);

                        ImplicitStyleManager.SetResourceDictionaryUri(stack, uri);

                        ImplicitStyleManager.SetApplyMode(stack, ImplicitStylesApplyMode.Auto);

                        ImplicitStyleManager.Apply(stack);

                    }

                };

        }

类层次

System.Threading.DispatcherObject

可以得到消息代码是不是运转在不利的线程上,通过调解器封送代码到顾客分界面线程。

System.Windows.DependencyObject

支撑改动文告,暗中认可值世襲,和愈来愈多划算的性质存储。从那一个类派生,就赢得了对依赖属性的帮助。

System.Windows.Media.Visual

Visual类的派生类能够体现在窗口中。

System.Windows.UIElement

支撑布局、输入、大旨和事件等WPF要素,还扶植路由事件,命令等。

System.Windows.FrameworkElement

FrameworkElement是世袭树的最后一站。它增添了意气风发部分更实际的布局属性如:HorizontalAlignment,Margin。还支持数据绑定,动漫,和样式。

System.Windows.Controls.Control

控件是能和顾客交互作用的成分。控件类支持模板。

System.Windows.Controls.ContentControl

System.Windows.Controls.ItemsControl

System.Windows.Controls.Panel

5、主窗体

    3增加System.Windows.Controls.Theming.Toolkit.dll,并在页面实行引用

PresentationCore.dll

彩世界开奖app官网 2

转自:

它富有顶层的WPF类型,满含windows,panels,和别的的控件类型。它也促成诸如Style等高层程序抽象。你将利用的大部类都来自于这几个装配体。

 4、RdpTabPage类

        <Grid Background="Black">

        <StackPanel x:Name="LayoutRoot" Width="248" Margin="100" 

            Theme:ImplicitStyleManager.ApplyMode="Auto"

                    Theme:ImplicitStyleManager.ResourceDictionaryUri="Themes/RainierOrange.xaml"

                Height="382">

       <Button Content="Button" Margin="10" ></Button>

       </StackPanel>

       </Grid>

它具备诸如UIElement和Visual等基类,全数的样子和控件派生自这几个基类。要是您无需总体的window和control抽象层,你能减低到那层,仍选取WPF的表现引擎。

 彩世界开奖app官网 3

       4,因为大旨控件中必须要分包一个子控件,所以这里运用了贰个StackPanel作为容器

WPF使用一个多等级次序的框架结构。在最上端,你的接收与高层的劳动相互影响,这几个劳动完全以托管的C#代码书写。在偷偷,使用贰个低层的非托管组件milcore.dll翻译.NET对象到Direct3D纹理和三角形。milcore.dll使用非托管代码完毕,因为它须要牢牢地整合Direct3D,还因为它对质量最棒敏感。

彩世界开奖app官网 4

第黄金年代种形式:

WindowsBase.dll

using System;
using System.Windows.Forms;

namespace RdpClient
{
    public class RdpTabPage : TabPage
    {
        AxMSTSCLib.AxMsRdpClient9 rdpc = null;
        protected override void OnCreateControl()
        {
            rdpc = new AxMSTSCLib.AxMsRdpClient9();
            rdpc.OnDisconnected  = new AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEventHandler(rdpc_OnDisconnected);
            this.Controls.Add(rdpc);
            rdpc.Dock = DockStyle.Fill;
            base.OnCreateControl();
        }

        void rdpc_OnDisconnected(object sender, AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEvent e)
        {
            ((TabControl)this.Parent).TabPages.Remove(this);
        }

        public void Disconnect()
        {
            try
            {
                if (rdpc.Connected == 1)
                {
                    rdpc.Disconnect();
                }
            }
            catch (Exception) { }
        }

        private void SetRdpClientProperties(RdpInfo info)
        {
            rdpc.Server = info.MachineName;
            rdpc.UserName = info.UserName;
            rdpc.Domain = "";
            rdpc.AdvancedSettings9.RDPPort = info.RdpPort;
            rdpc.AdvancedSettings9.ClearTextPassword = info.Password;
            rdpc.AdvancedSettings9.RedirectDrives = true;
            rdpc.AdvancedSettings9.RedirectPrinters = true;
            rdpc.AdvancedSettings9.RedirectSmartCards = true;
            rdpc.AdvancedSettings9.ConnectToServerConsole = true;
            rdpc.ColorDepth = 32;
            rdpc.Dock = DockStyle.Fill;
        }

        public void Connect(RdpInfo info)
        {
            SetRdpClientProperties(info);
            rdpc.Connect();
        }
    }
}

      3,把这里的大旨当成一个控件,那么需求利用那一个核心的控件应该是其子控件

6、程序下载地址

     有三个地点须要留意的正是对于Themes下的xaml文件BuildAction不能够为Page类型,不然会并发不恐怕找到相应财富的谬误

using System;

using System.Windows.Forms;

namespace RdpClient
{
    public partial class Form_Main : Form
    {
        #region 构造
        public Form_Main()
        {
            InitializeComponent();
        }
        #endregion

        #region 方法
        /// <summary>
        /// 绑定远程桌面列表
        /// </summary>
        private void BindMenuItem()
        {
            tsb_Rdps.DropDownItems.Clear();
            if (Config.RdpInfos == null) return;

            foreach (var info in Config.RdpInfos.Items)
            {
                ToolStripMenuItem item = new ToolStripMenuItem();
                item.ImageScaling = ToolStripItemImageScaling.SizeToFit;
                item.Name = string.Format("MenuItem{0}", info.AliasName);
                item.Text = info.AliasName;
                item.Tag = info;
                tsb_Rdps.DropDownItems.Add(item);
            }
        }

        public void RdpConnect(RdpInfo info)
        {
            RdpTabPage rdpTab = new RdpTabPage();
            rdpTab.Text = info.AliasName;

            foreach (TabPage tp in tab_Rdps.TabPages)
            {
                if (tp.Text == rdpTab.Text)
                {
                    tab_Rdps.SelectTab(tp);
                    return;
                }
            }

            tab_Rdps.TabPages.Add(rdpTab);
            rdpTab.Connect(info);
            tab_Rdps.SelectTab(rdpTab);
        }
        #endregion

        #region 事件
        private void Form_Main_Load(object sender, EventArgs e)
        {
            Config.Load();
            BindMenuItem();
        }
        private void Form_Main_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("确定退出程序?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
            {
                e.Cancel = true;
                return;
            }
        }

        /// <summary>
        /// 连接远程桌面
        /// </summary>
        private void tsb_Rdps_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            RdpInfo item = e.ClickedItem.Tag as RdpInfo;
            if (item == null) return;

            RdpConnect(item);
        }

        /// <summary>
        /// 双击选项卡时关闭相应选项卡
        /// </summary>
        private void tab_Rdps_DoubleClick(object sender, EventArgs e)
        {
            if (tab_Rdps.SelectedIndex < 0) return;

            RdpTabPage rdpTab = (RdpTabPage)tab_Rdps.SelectedTab;
            if (rdpTab != null)
            {
                rdpTab.Disconnect();
            }
        }

        /// <summary>
        /// 关闭当前Tab页的远程桌面
        /// </summary>
        private void tsb_Disconnect_Click(object sender, EventArgs e)
        {
            if (tab_Rdps.SelectedIndex < 0) return;

            RdpTabPage rdpTab = (RdpTabPage)tab_Rdps.SelectedTab;
            if (rdpTab != null)
            {
                rdpTab.Disconnect();
            }
        }

        /// <summary>
        /// 关闭所有Tab页的远程桌面
        /// </summary>
        private void tsb_DisconnectAll_Click(object sender, EventArgs e)
        {
            foreach (TabPage tab in tab_Rdps.TabPages)
            {
                RdpTabPage rdpTab = (RdpTabPage)tab;
                rdpTab.Disconnect();
            }
        }

        /// <summary>
        /// 最大化
        /// </summary>
        private void tsb_Max_Click(object sender, EventArgs e)
        {
            if (tab_Rdps.SelectedIndex < 0) return;

            RdpTabPage rdpTab = (RdpTabPage)tab_Rdps.SelectedTab;
            if (rdpTab != null)
            {
                var rdpc = rdpTab.Controls[0] as AxMSTSCLib.AxMsRdpClient9;
                rdpc.FullScreen = true;
                rdpc.FullScreenTitle = rdpTab.Text;
            }
        }

        private void tsb_Config_Click(object sender, EventArgs e)
        {
            Form_Settings form = new Form_Settings();
            if (form.ShowDialog() == DialogResult.OK)
            {
                BindMenuItem();
            }
        }

        private void tsb_About_Click(object sender, EventArgs e)
        {
            MessageBox.Show("远程桌面", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        #endregion
    }
}

       效果:彩世界开奖app官网 5         其曾经覆盖了对根成分的Background设置的另大器晚成种颜色。

3、在VS项目中援引C:WindowsSystem32mstscax.dll

          <Red:ShinyRedTheme>

            <StackPanel x:Name="LayoutRoot"

                    Width="207"

                    Margin="35,39,158,81"

                    Height="180">

            <Button Content="Button"

                    Margin="10"></Button>           

            <Button Content="Button"

                    Height="23"                    

                    Name="button1"

                    Width="75" />

            </StackPanel>

           </Red:ShinyRedTheme>

        彩世界开奖app官网 6       首要正是Theme三种宗旨得以切换,因为只是模仿,所以UI上只放了贰个List博克斯用来筛选不一样的宗旨

           彩世界开奖app官网 7

恢宏:动态换宗旨

   4,应用大旨:

         1,选用三个主旨文件,能够从C:Program FilesMicrosoft SDKsSilverlightv3.0ToolkitJul09ThemesXaml目录下抉择,这里将其复制到Themes文件中。

  5,这里大家设置了背景为Blcak,看看效果:

     2,将文件增添进去以往,有两个地方是很关键的,正是将RainierOrange.xaml的BuildAction的性质由Page改为Content,借使不这么做的话,VS会爆出AG_E_PARSER_BAD_PROPERTY_VALUE那样的错误,同时必要丰盛宗旨文件中引用到的dll。

第2种方式:

      2,在XAML中增加对那一个dll的引用

有关Theme,笔者的驾驭是和ASP.NET核心中的CSS是三个意味,当然,Sl中的样式愈来愈的强大。

          xmlns:Red="clr-namespace:System.Windows.Controls.Theming;assembly=System.Windows.Controls.Theming.ShinyRed"

      1,装完Silverlight Tookit之后,在C:Program FilesMicrosoft SDKsSilverlightv3.0ToolkitJul09Themes目录下边会有风姿罗曼蒂克部分主题的dll,大家引用当中贰个dll文件,以System.Windows.Controls.Theming.ShinyRed.dll为例

本文由彩世界开奖app官网发布于计算机编程,转载请注明出处:Silverlight中的大旨设置彩世界开奖app官网

关键词: WPF silverlight相