Silverlight Telerik控件学习:弹出窗口RadWindow

几乎所有的业务系统都有弹出窗口,典型场景有二种 :

1、简单的弹出一个对话框显示信息,比如下面这样:

2011051916361792.png

这个很简单,代码示例如下:

DialogParameters pars = new DialogParameters();            
pars.Header = "信息";
pars.Content = "Hello World";
RadWindow.Alert(pars);

2、点击某条记录的“编辑”按钮,传入ID参数,弹出一个窗口,编辑保存后,将操作结果返回给父窗口

2011051916383264.png

这种场景下,要求:

a)弹出窗口能接受到父窗口传过来的参数

b)弹出窗口关闭时,父窗口要能区分出是通过什么操作关闭的(比如:是直接点击右上角的X按钮关的,还是点击“提交”按钮关的,或是点击“取消”按钮关的)

c)弹出窗关闭后,父窗口要能知道操作结果

示例代码如下:

弹出窗口Xaml部分:

<telerik:RadWindow x:Class="Telerik.Sample.PopWinUserReg"
    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"
    d:DesignHeight="480" d:DesignWidth="640" WindowStartupLocation="CenterScreen" Header="会员注册" Padding="10" Width="640" Height="300" ResizeMode="NoResize">
    
    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="30" />
            <RowDefinition Height="Auto" MinHeight="10" />
            <RowDefinition Height="30" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        
        <TextBlock VerticalAlignment="Center" TextAlignment="Right">用户名:</TextBlock>
        <telerik:RadMaskedTextBox Grid.Column="1" Grid.Row="0"  Name="txtUserName" VerticalAlignment="Center" Mask="aaaaaaaaaa"  Margin="0,0,10,0" />
        <TextBlock VerticalAlignment="Center" TextAlignment="Right" Grid.Row="1">密码:</TextBlock>
        <telerik:RadMaskedTextBox Grid.Column="1" Grid.Row="1"  Name="txtPassWord" VerticalAlignment="Center" Margin="0,0,10,0" />
        <TextBlock VerticalAlignment="Center" TextAlignment="Right" Grid.Row="2">重复密码:</TextBlock>
        <telerik:RadMaskedTextBox Grid.Column="1" Grid.Row="2"  Name="txtPassWord2" VerticalAlignment="Center" Margin="0,0,10,0" />
        <TextBlock VerticalAlignment="Center" TextAlignment="Right" Grid.Row="3">生日:</TextBlock>
        <telerik:RadMaskedTextBox Grid.Column="1" Grid.Row="3"  Name="txtBirthday" VerticalAlignment="Center" Margin="0,0,10,0" />
        <TextBlock VerticalAlignment="Center" TextAlignment="Right" Grid.Row="4">电子邮件:</TextBlock>
        <telerik:RadMaskedTextBox Grid.Column="1" Grid.Row="4"  Name="txtEmail" VerticalAlignment="Center" Margin="0,0,10,0" />
        <TextBlock VerticalAlignment="Center" TextAlignment="Right" Grid.Row="5">电话号码:</TextBlock>
        <telerik:RadMaskedTextBox Grid.Column="1" Grid.Row="5"  Name="txtTel" VerticalAlignment="Center" Margin="0,0,10,0" />
        <TextBlock VerticalAlignment="Center" TextAlignment="Right" Grid.Row="6">手机号码:</TextBlock>
        <telerik:RadMaskedTextBox Grid.Column="1" Grid.Row="6"  Name="txtMobile" VerticalAlignment="Center" Margin="0,0,10,0" />

        <StackPanel Grid.Row="8" Grid.Column="1" Orientation="Horizontal" Height="22">
        <telerik:RadButton Content="提 交"  Width="70" Name="btnSubmit" Click="btnSubmit_Click" />
        <telerik:RadButton Content="取 消"  Width="70" Margin="10,0,0,0" Name="btnCancel" Click="btnCancel_Click" />
        </StackPanel>
    </Grid>
</telerik:RadWindow>

弹出窗口Xaml.cs部分

using System;
using System.Collections.Generic;
using System.Windows;
using Telerik.Windows.Controls;

namespace Telerik.Sample
{
    public partial class PopWinUserReg : RadWindow
    {
        public PopWinUserReg()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(PopWinUserReg_Loaded);
        }

        void PopWinUserReg_Loaded(object sender, RoutedEventArgs e)
        {
            Dictionary<string, Object> dicPars = this.Tag as Dictionary<string, object>;
            if (dicPars != null) 
            {
                string id = dicPars["id"].ToString();
                RadWindow.Alert("传入参数为:" + id);
            }
        }

        private void btnCancel_Click(object sender, RoutedEventArgs e)
        {
            this.DialogResult = false;
            this.Close();
        }

        private void btnSubmit_Click(object sender, RoutedEventArgs e)
        {
            this.DialogResult = true;
            this.Tag = "回传给父窗口的值在这里!";
            this.Close();
        }
    }
}

父窗口Xaml.cs部分:

using System;
using System.Collections;
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 Telerik.Windows.Controls;

namespace Telerik.Sample
{
    public partial class FormInput : UserControl
    {
        PopWinUserReg win=null;
        Dictionary<string, Object> dicPars = new Dictionary<string, object>();

        public FormInput()
        {
            InitializeComponent();

            this.Loaded += new RoutedEventHandler(FormInput_Loaded);
            this.Unloaded += new RoutedEventHandler(FormInput_Unloaded);
        }

        void FormInput_Loaded(object sender, RoutedEventArgs e)
        {
            win = new PopWinUserReg();
            win.Loaded += new RoutedEventHandler(win_Loaded);
            win.Closed += new EventHandler<Windows.Controls.WindowClosedEventArgs>(win_Closed);
        }

        void win_Closed(object sender, Windows.Controls.WindowClosedEventArgs e)
        {
            if (!e.DialogResult.HasValue) 
            {
                RadWindow.Alert("直接关闭了弹出窗口!");
            }
            else if (e.DialogResult.Value)
            {
                string result = win.Tag.ToString();
                RadWindow.Alert("点击“提交”关闭的,传回来的值为:" + result);
            }
            else 
            {
                RadWindow.Alert("点击“取消”关闭的!");
            }
            
            
        }

        void win_Loaded(object sender, RoutedEventArgs e)
        {
            RadWindow.Alert("弹出窗口加载完成!");
        }

        void FormInput_Unloaded(object sender, RoutedEventArgs e)
        {
            if (win != null) 
            {
                win.Close();
                win = null;
            }
        }

        private void btnReg_Click(object sender, RoutedEventArgs e)
        {
            #region 传参数到弹出窗口的Tag
            string PARAM_ID = "id";
            if (dicPars.ContainsKey(PARAM_ID)) 
            {
                dicPars.Remove(PARAM_ID);
            }
            dicPars.Add(PARAM_ID, 1);
            win.Tag = dicPars;
            #endregion
            win.ShowDialog();
        }
    }
}
以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值