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>
然后我们就可以在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; }
在主窗口中添加Button并设置单击函数,执行Show方法;
到此就可以显示窗口了