Windows Phone开发学习笔记(1)---------自定义弹框

                             Windows Phone开发学习笔记(1)

                                          ---------自定义弹框

    在WP中自定义弹框是可以通过Popup类实现的。

    Popup的语法为:

            [ContentPropertyAttribute("Child")]

            [LocalizabilityAttribute(LocalizationCategory.None)]

            public class Popup : FrameworkElement, IAddChild;

     这是Popup使用的小列子

            Popup codePopup = new Popup();

            TextBlock popupText = new TextBlock();

            popupText.Text = "Popup Text";

              popupText.Background = Brushes.LightBlue;popupText.Foreground = Brushes.Blue;

            codePopup.Child = popupText;

    当然上面都是从MSDN上抄的,下面我们来使用一下:

    新建一个window phone项目,名字随便,新建一个类用来弹框,命名MyMessageBox;在其上添加成员变量,private Popup popup;

    新建一个控件布局文件,命名Message,用于弹框的布局;

    在Message里添加你想要的控件;

    我在这里添加的为: 

<UserControl x:Class="AppStudy_1.Message"
    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"
    mc:Ignorable="d"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    d:DesignHeight="480" d:DesignWidth="480">
    
    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}">
        <TextBlock Text="李贵发" FontSize="100" />
        <Button Content="OK"/>
    </Grid>
</UserControl>
View Code

    然后我们就可以在MyMessageBox中添加显示的代码了,在MyMessageBox添加方法Show(),用于显示弹框

    首先我们要把Popup new 出来来即:popup=new Popup();

    然后new 一个StackPanel的对象用于存放弹框界面,

    将Message加入StackPanel,

    给StackPanel创建模板,

    之后将Popup 对象的字节点设为StackPanel,

    将Popup 显示出来

    代码为: 

public void Show()
        {
            popup = new Popup();
            StackPanel panel = new StackPanel();
            panel.Children.Add(new AppStudy_1.Message());
            panel.Children.Add(new Rectangle { Width = 480, Height = 800, Fill = new SolidColorBrush(Colors.Gray), Opacity = 0.5 });
            popup.Child = panel;
            popup.IsOpen = true;
        }
View Code

    在主窗口中添加Button并设置单击函数,执行Show方法;

    到此就可以显示窗口了

    

 

原文地址:https://www.cnblogs.com/liguifa/p/3819091.html