1.定义全局的变量在app.xaml.cs里面
2.页面跳转:
private void Button_Click(object sender, RoutedEventArgs e)
{
//创建一个信息类将来传进另一个界面
Info info = new Info();
info.Input = input.Text.ToString();
Frame.Navigate(typeof(two), info);
}
3.获取接口中获取到的信息
//点击下面那个按钮开始执行访问接口
private void Bt_Click(object sender, RoutedEventArgs e)
{
//获取输入的邮编,尽量要判断,我没有判断
string post = this.Tb_Post.Text.ToString();
//要访问的网址 ,加上邮编参数
string uri = string.Format("http://webservice.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx/getAddressByZipCode?theZipCode={0}&userID=",post);
//创建一个http请求
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);
//设置请求方法 为GET方法
httpWebRequest.Method = HttpMethod.Get.Method;
//开始获取网络请求资源,设置异步请求方法,这一块你可以先写成这种形式,把你跳转的方法写进去,就是GetResponse,然后右键生成方法存根,里面有一个参数,慢慢就熟悉了
httpWebRequest.BeginGetResponse(GetRespnose, httpWebRequest);
}
private async void GetRespnose(IAsyncResult ar)
{
//先获取上面函数传来的那个httpWebRequest ar 里面包含很多信息,你可以ar.出来一些方法你可以看看都是啥
HttpWebRequest httpWebRequrst = ar.AsyncState as HttpWebRequest;
//吧网络资源获取下来 有些方法你要看他的返回值呢,比如EndGetResponse返回的是WebResponse你要强制类型转换呢
HttpWebResponse httpWenResponse =(HttpWebResponse) httpWebRequrst.EndGetResponse(ar);
//获取网络请求流为什么要用using 呢,因为using这样写就可以释放资源,你可以理解成开辟空间,本来用完要释放 using的意思就是害怕你没有释放
using (Stream stream = httpWenResponse.GetResponseStream())
{
//专门处理xml的 这个比较讨厌,写很大一对,不像json可以一句话就搞定
XElement xelement = XElement.Load(stream);
//筛选有种的信息 linq表达式,你要看看
var result = from item in xelement.DescendantsAndSelf("ZipInfo")
select item;
//开始将查询的节点信息添加到类中
foreach(var it in result)
{ //每个节点创建一个类,然后利用初始化器进行初始化
AddressInfo addressInfo = new AddressInfo
{
Province = it.Element("PROVINCE").Value.Trim(),
City = it.Element("CITY").Value.Trim(),
Address = it.Element("ADDRESS").Value.Trim()
};
list.Add(addressInfo);
}
//开始更新到UI界面
await this.Dispatcher.RunAsync(
Windows.UI.Core.CoreDispatcherPriority.Normal,
() => { itemResult.ItemsSource = list;
});
}
}
4.
TextWrapping="Wrap"
是否允许换行-----允许换行
5.
<span style="white-space:pre"> </span><Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
设置表格高度 这种做法是让容器中按一比一的比例分配
6. TextBlock适用于少量文字的文本展示,TextBox适用于显示、编辑单格式、多行文本,常用于在表单中编辑非格式化文本。
7. HorrizenalAliament 水平位置 VirticalAliment 垂直位置
8. 数据绑定:第一步:将要绑定内容的全局类写在App.xaml.cs里(如果不是全局类就写在那个类作用的页面后台代码中)
第二步:在要绑定的xaml里的控件进行绑定
第三步:在对应的后台代码中创建对象,并开始绑定
public sealed partial class BlankPage1 : Page
{
telephone tel = new telephone { num = "这是标题" };
public BlankPage1()
{
this.InitializeComponent();
this.DataContext = tel;
}
}
每个绑定有四个组件:目标对象,目标属性,绑定源,绑定源中的值的路径
绑定源:绑定源又称为数据源,即数据绑定的数据提供者,可以是一个UI元素对象或者某个类的实例,也可以是一个集合。
绑定源中的值的路径:Path就是要具体关注的属性值。
目标对象:是数据的接受者,但不一定是数据的显示者
例:定义一个椭圆大小随着slider滑动改变:
<Ellipse Height="{Binding ElementName=slider,Path=Value}"
Width="{Binding ElementName=slider, Path=Value}"
Fill="Red" Name="ellipsel" Stroke="Black" StrokeThickness="1"/>
注意:只有DependencyObject类型可以定义依赖项属性
小贴士---获取当前日期:
<span style="white-space:pre"> </span>txtBirth.Text = dt.Date.ToString("yyyy-MM-dd");
9.
用name.ToLower()把输入的姓名转换为小写,在不确定用户输入的内容时,使用它是方便的。