阿狸连连看
简介:
连连看小游戏,大多是益智小游戏,玩家只要将相同的两张牌点击就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,适合细心的玩家。丰富的道具和公共模式的加入,增强游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。
部分代码:
using NotificationsExtensions.TileContent;
using NotificationsExtensions.ToastContent;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.UI.Notifications;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using Windows.UI.Xaml.Navigation;
// “空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=234238 上有介绍
namespace Test
{
/// <summary>
/// 可用于自身或导航至 Frame 内部的空白页。
/// </summary>
public sealed partial class Page6 : Page
{
private int clos = 10; 定义一个10行10列
private int rows = 10;
int i = 0;
private Image ClickImg = new Image();
DispatcherTimer tim = new DispatcherTimer();
public Page6()
{
this.InitializeComponent();
// 我们将为设置面板添加三个命令
// 分别为 首选项,用户反馈,关于
Windows.UI.ApplicationSettings.SettingsCommand cmd1 = new Windows.UI.ApplicationSettings.SettingsCommand("1", "首选项", c => { });
Windows.UI.ApplicationSettings.SettingsCommand cmd2 = new Windows.UI.ApplicationSettings.SettingsCommand("2", "用户反馈", c => { });
Windows.UI.ApplicationSettings.SettingsCommand cmd3 = new Windows.UI.ApplicationSettings.SettingsCommand("3", "关于本应用", c => { });
// 命令是在CommandsRequested事件中添加的
Windows.UI.ApplicationSettings.SettingsPane.GetForCurrentView().CommandsRequested += (sp, arg) =>
{
arg.Request.ApplicationCommands.Add(cmd1);
arg.Request.ApplicationCommands.Add(cmd2);
arg.Request.ApplicationCommands.Add(cmd3);
};
}
/// <summary>
/// 在此页将要在 Frame 中显示时进行调用。
/// </summary>
/// <param name="e">描述如何访问此页的事件数据。Parameter
/// 属性通常用于配置页。</param>
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
if(e.NavigationMode==NavigationMode.New){
///给Grid添加10列
for (int i = 0; i < 10; i++)
{
grid1.ColumnDefinitions.Add(new ColumnDefinition());
}
///给 Grid添加10行
for (int j = 0; j < 10; j++)
{
grid1.RowDefinitions.Add(new RowDefinition());
}
tx1.Text = (clos * rows).ToString();
///获取程序中图标文件
StorageFolder InstallFolder = Package.Current.InstalledLocation;获得程序的安装路径
var ImgFolder = await InstallFolder.GetFolderAsync("images2");
var ImgFiles = await ImgFolder.GetFilesAsync(); 获得Images文件夹下的图片
List<string> ImgList = new List<string>(); ///将读取的图片文件添加到List中
foreach (var ImgFile in ImgFiles)
{
string FilePath = "ms-appx:///images2/" + ImgFile.Name;
ImgList.Add(FilePath);
}
///总数10*10=100
///那么100/2=50
List<string> ImgCount = new List<string>();
for (int k = 0; k < rows * clos / 2; k++)
{
int ListNum = new Random(k + DateTime.Now.Millisecond).Next(ImgList.Count - 1);
ImgCount.Add(ImgList[ListNum]); 添加两次 方便配对的
ImgCount.Add(ImgList[ListNum]);
}
到此100个配对的图标已OK
///现在要将其显示到界面上来
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < clos; j++)
{
Image img = new Image();
img.Name = i.ToString() + j.ToString();
int SourceNum = new Random(i + j + DateTime.Now.Millisecond).Next(ImgCount.Count - 1);
BitmapImage bitmap = new BitmapImage(new Uri(ImgCount[SourceNum]));
ImgCount.RemoveAt(SourceNum);
img.Source = bitmap;
img.Tapped += img_Tapped;
grid1.Children.Add(img);
Grid.SetColumn(img, i);
Grid.SetRow(img, j);
}
}
}
}
void tim_Tick(object sender, object e)
{
i++;
tx2.Text = i + " 秒";
}
void img_Tapped(object sender, TappedRoutedEventArgs e)
{
///获得当前小图标
Image Img = sender as Image;
if (ClickImg.Source == null)
{
ClickImg = Img;
}
else if (((Windows.UI.Xaml.Media.Imaging.BitmapImage)(ClickImg.Source)).UriSource != ((Windows.UI.Xaml.Media.Imaging.BitmapImage)(Img.Source)).UriSource)
{
ClickImg = Img;
}
else
{
///如果本次点击的图标与前面储存的ClickImg相同,则让两个小图标隐藏
if (((((Windows.UI.Xaml.Media.Imaging.BitmapImage)(ClickImg.Source)).UriSource == ((Windows.UI.Xaml.Media.Imaging.BitmapImage)(Img.Source)).UriSource)) && (Img.Name != ClickImg.Name))
{
ClickImg.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
Img.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
ClickImg = new Image();
///处理一下clos*rows=100个图标点击完成给予简单提示
if ((Convert.ToInt32(tx1.Text) - 2) > 0)
{
tx1.Text = (Convert.ToInt32(tx1.Text) - 2).ToString();
}
else
{
MessageDialog MsgDig = new MessageDialog("恭喜,您已通过!");
tx1.Text = "0";
tim.Stop();
MsgDig.ShowAsync();
}
}
}
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
tim.Interval = TimeSpan.FromMilliseconds(1000);
tim.Tick += tim_Tick;
tim.Start();
}
}
}
布局:
<Page
x:Class="Test.Page6"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Test"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Grid x:Name="grid1" Width="800" Height="600"></Grid>
<TextBlock HorizontalAlignment="Left" Margin="35,21,0,0" TextWrapping="Wrap" Text="剩余:" VerticalAlignment="Top" Height="24" Width="90" FontSize="24"/>
<TextBlock x:Name="tx1" HorizontalAlignment="Left" Margin="130,21,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Height="24" Width="113" TextAlignment="Center" FontSize="24"/>
<TextBlock HorizontalAlignment="Left" Margin="35,59,0,0" TextWrapping="Wrap" Text="时间:" VerticalAlignment="Top" Height="24" Width="90" FontSize="24"/>
<TextBlock x:Name="tx2" HorizontalAlignment="Left" Margin="130,59,0,0" TextWrapping="Wrap" Text="0 秒" VerticalAlignment="Top" Width="113" Height="32" FontSize="24" TextAlignment="Center"/>
<Button Content="开始" HorizontalAlignment="Left" Margin="35,100,0,0" VerticalAlignment="Top" Height="57" Width="139" Background="#B311DABF" Click="Button_Click_1"/>
</Grid>
</Page>
天气预报
简介:
调用webService ,解析xml文件,输入城市名称,可以查询天气预报..
部分代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using Windows.ApplicationModel;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Xml;
using Windows.Data.Xml.Dom;
// “空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=234238 上有介绍
namespace Test
{
/// <summary>
/// 可用于自身或导航至 Frame 内部的空白页。
/// </summary>
public sealed partial class Page5 : Page
{
List<Traffic> list2 = new List<Traffic>();
public Page5()
{
this.InitializeComponent();
}
/// <summary>
/// 在此页将要在 Frame 中显示时进行调用。
/// </summary>
/// <param name="e">描述如何访问此页的事件数据。Parameter
/// 属性通常用于配置页。</param>
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
if(e.NavigationMode==NavigationMode.New){
StorageFolder sfloder = Package.Current.InstalledLocation;
var floder=await sfloder.GetFolderAsync("images");
var files= await floder.GetFilesAsync();
List<string> list = new List<string>();
foreach(var file in files ){
string path = "ms-appx:///images/"+file.Name;
list.Add(path);
}
fv.ItemsSource = list;
}
}
//改变事件
private void ToggleSwitch_Toggled_1(object sender, RoutedEventArgs e)
{
}
private async void bt1_Click(object sender, RoutedEventArgs e)
{
MessageDialog dialog = new MessageDialog("提示");
dialog.Commands.Add(new UICommand("确定") { Id=1});
dialog.Commands.Add(new UICommand("取消") { Id=2});
var result=await dialog.ShowAsync();
if((int)result.Id==1){
}else if((int)result.Id==2){
}
}
private async void bt2_Click(object sender, RoutedEventArgs e)
{
HttpClient client = new HttpClient();
var result = await client.GetStringAsync("http://openapi.aibang.com/bus/stats?app_key=f41c8afccc586de03a99c86097e98ccb&city=%e6%b5%8e%e5%8d%97&q=%e9%bd%90%e9%b2%81%e8%bd%af%e4%bb%b6%e5%9b%ad");
//new MessageDialog(result).ShowAsync();
List<string> list = new List<string>();
XmlDocument xd = new XmlDocument();
xd.LoadXml(result);
XmlNodeList nodeList = xd.SelectSingleNode("root").ChildNodes;
foreach (IXmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;
if (xn.NodeName == "stats")
{
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (IXmlNode xn1 in nls)//遍历
{
for (int item = 0; item < xn1.ChildNodes.Count; item++)
{
XmlElement xe2 = (XmlElement)xn1.ChildNodes[item];//转换类型
//Traffic tr = new Traffic();
string content = "";
if (xe2.TagName.Equals("xy"))
{
content = xe2.InnerText;
}
if (xe2.TagName.Equals("name"))
{
content = xe2.InnerText;
}
if (xe2.TagName.Equals("line_names"))
{
content = xe2.InnerText;
}
list.Add(content);
}
}
}
}
Traffic tr = new Traffic();
tr.name = list[0];
tr.local = list[1];
tr.content = list[2];
Traffic tr2 = new Traffic();
tr2.name = list[3];
tr2.local = list[4];
tr2.content = list[5];
Traffic tr3 = new Traffic();
tr3.name = list[6];
tr3.local = list[7];
tr3.content = list[8];
list2.Add(tr);
list2.Add(tr2);
list2.Add(tr3);
fv2.ItemsSource = list2;
//new MessageDialog(list.Count.ToString()).ShowAsync();
}
}
}
布局代码:
<Page
x:Class="Test.Page5"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Test"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Page.TopAppBar>
<AppBar Background="Gray">
<StackPanel Orientation="Horizontal" >
<Button x:Name="bt1" Style="{StaticResource HomeAppBarButtonStyle}" AutomationProperties.Name="主页" Click="bt1_Click"></Button>
<Button x:Name="bt2" Style="{StaticResource FavoriteAppBarButtonStyle}" AutomationProperties.Name="收藏" Click="bt2_Click"></Button>
<Button x:Name="bt3" Style="{StaticResource SaveAppBarButtonStyle}" AutomationProperties.Name="保存"></Button>
</StackPanel>
</AppBar>
</Page.TopAppBar>
<Page.BottomAppBar>
<AppBar Background="Gray">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" >
<Button x:Name="bt4" Style="{StaticResource ShowBccAppBarButtonStyle}" AutomationProperties.Name="关于"></Button>
<Button x:Name="bt5" Style="{StaticResource NoAppBarButtonStyle}" AutomationProperties.Name="退出"></Button>
</StackPanel>
</AppBar>
</Page.BottomAppBar>
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<ProgressBar HorizontalAlignment="Center" VerticalAlignment="Center" Height="19" Width="201" IsIndeterminate="True"/>
<ProgressRing HorizontalAlignment="Left" Margin="647,284,0,0" VerticalAlignment="Top" Height="47" Width="74" IsActive="True"/>
<ToggleSwitch Header="网络设置" HorizontalAlignment="Left" Margin="1172,139,0,0" VerticalAlignment="Top" Toggled="ToggleSwitch_Toggled_1"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto" HorizontalAlignment="Left" Height="270" Margin="25,61,0,0" VerticalAlignment="Top" Width="497">
<Image Source="images/ali01.png" Height="514" Width="518"></Image>
</ScrollViewer>
<FlipView HorizontalAlignment="Left" x:Name="fv" Margin="25,424,0,0" VerticalAlignment="Top" Width="758" Height="309">
<FlipView.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}"></Image>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
<FlipView x:Name="fv2" HorizontalAlignment="Left" Margin="761,426,0,0" VerticalAlignment="Top" Width="543" Height="332">
<FlipView.ItemTemplate>
<DataTemplate>
<ScrollViewer HorizontalScrollBarVisibility="Auto" HorizontalAlignment="Left" VerticalScrollBarVisibility="Auto">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding name}"></TextBlock>
<TextBlock Text="{Binding local}"></TextBlock>
<TextBlock Text="{Binding content}"></TextBlock>
</StackPanel>
</ScrollViewer>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
</Grid>
</Page>
此项目参考"传智播客.net培训Windows 8开发视频教程"