uwp 基础知识
(TitleId,DiaplayName,args,LogoUri,size); Obj.VisualElements.ShowNameOnSquare150x150Logo = true; if (await Obj.RequestCreateAsync()) { await new MessageDialog("OK").ShowAsync(); } }
删除,修改磁贴
private async void Button_Click_1(object sender, RoutedEventArgs e) { //磁贴的唯一标识 string TitleId = "My_Title"; var Title = new SecondaryTile(TitleId); Title.VisualElements.ShowNameOnSquare150x150Logo = false; await Title.RequestDeleteAsync(); }
磁贴通知
var toast = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01); var textNodes = toast.GetElementsByTagName("text"); textNodes[0].InnerText = "呵呵呵"; textNodes[1].InnerText = "你是猴子请来的救兵吗?"; textNodes[2].InnerText = "呵呵呵"; var Message = new TileNotification(toast); TileUpdateManager.CreateTileUpdaterForSecondaryTile("My_Title").Update(Message);
HttpClient
string url = "http://www.baidu.com"; HttpClient client = new HttpClient(); string responce = await client.GetStringAsync(url);
Weather天气实战
利用GPS获取手机坐标(经纬度)
var geo = new Geolocator(); var P = await geo.GetGeopositionAsync(); var Po = P.Coordinate.Point.Position;
百度地图API获取位置信息
string AppId = "XTTNdkZYIFCIqKVW1vfYUID3eWOgizwC";
string Type = "json"; string Url = "http://api.map.baidu.com/geocoder/v2/?ak=" + AppId + "&location=" + Po.Latitude + "," + Po.Longitude + "&output=" + Type + ""; HttpClient client = new HttpClient(); var json = await client.GetStringAsync(Url); JsonObject jsonRes = JsonObject.Parse(json); var City = jsonRes.GetNamedObject("result").GetNamedObject("addressComponent").GetNamedString("city");
百度天气接口 获取天气信息
string WeaApi = "http://api.map.baidu.com/telematics/v3/weather?location=" + City + "&output=json&ak=" + AppId; var WeatherJson = await client.GetStringAsync(WeaApi); Info i= JsonConvert.DeserializeObject<Info>(WeatherJson); this.DataContext = i;
天气信息 Info Class
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Weather { public class Info { public int error { get; set; } public string status { get; set; } public string date { get; set; } public List<result> results { get; set; } } public class result { public string currentCity { get; set; } public string pm25 { get; set; } public IList<indexitem> index { get; set; } public IList<weather_data_item> weather_data { get; set; } } public struct weather_data_item { public string date { get; set; } public string dayPictureUrl { get; set; } public string nightPictureUrl { get; set; } public string weather { get; set; } public string wind { get; set; } public string temperature { get; set; } } public struct indexitem { public string title { get; set; } public string zs { get; set; } public string tipt { get; set; } public string des { get; set; } } }
前台Xmal代码绑定
<Page x:Class="Weather.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Weather" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <Grid.Background> <ImageBrush ImageSource="ms-appx:///Assets/zhuo.jpeg"/> </Grid.Background> <ProgressRing x:Name="gif"></ProgressRing> <Hub Header="Weather"> <HubSection> <DataTemplate> <StackPanel> <TextBlock Text="{Binding results[0].currentCity}" FontSize="60"></TextBlock> <TextBlock Text="{Binding results[0].pm25}" FontSize="30"></TextBlock> </StackPanel> </DataTemplate> </HubSection> <HubSection> <DataTemplate> <ListView ItemsSource="{Binding results[0].weather_data}"> <ListView.ItemTemplate> <DataTemplate> <Border Width="360" BorderThickness="2" BorderBrush="Green"> <StackPanel> <TextBlock Text="{Binding date}" FontSize="25"></TextBlock> <TextBlock Text="{Binding weather}" FontSize="30"></TextBlock> <StackPanel Orientation="Horizontal"> <Image Source="{Binding dayPictureUrl}" Stretch="Uniform" Width="60" Height="60"></Image> </StackPanel> <TextBlock Text="{Binding wind}" FontSize="25"></TextBlock> <TextBlock Text="{Binding temperature}" FontSize="30"></TextBlock> </StackPanel> </Border> </DataTemplate> </ListView.ItemTemplate> </ListView> </DataTemplate> </HubSection> <HubSection> <DataTemplate> <ListView ItemsSource="{Binding results[0].index}"> <ListView.ItemTemplate> <DataTemplate> <Border> <StackPanel> <TextBlock Text="{Binding tipt}" FontSize="25" Foreground="#FF2996AE"></TextBlock> <TextBlock Text="{Binding zs}" FontSize="30" Foreground="Green"></TextBlock> <TextBlock Text="{Binding des}" FontSize="20" TextWrapping="Wrap"></TextBlock> </StackPanel> </Border> </DataTemplate> </ListView.ItemTemplate> </ListView> </DataTemplate> </HubSection> </Hub> </Grid> </Page>
天气数据加载时用ProgressRing控制
<ProgressRing x:Name="Pro"></ProgressRing> 加载前 Pro.IsActive=True; 加载完毕 Pro.IsActive=false;
数据绑定
public class User { public string Name { get; set; } public string Phone { get; set; } public string Address { get; set; } } protected override void OnNavigatedTo(NavigationEventArgs e) { // TODO: 准备此处显示的页面。 // TODO: 如果您的应用程序包含多个页面,请确保 // 通过注册以下事件来处理硬件“后退”按钮: // Windows.Phone.UI.Input.HardwareButtons.BackPressed 事件。 // 如果使用由某些模板提供的 NavigationHelper, // 则系统会为您处理该事件。 User U = new User(); U.Name = "张三"; U.Phone = "1888"; U.Address = "东北"; this.DataContext = U; }
<TextBox Text="{Binding }"></TextBox> <TextBox Text="{Binding Name}"></TextBox> <TextBox Text="{Binding Address}"></TextBox>
UWP汉堡包菜单
Xaml:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <AppBarButton Click="Button_Click" Height="50" Width="50"> <SymbolIcon Symbol="Bold" HorizontalAlignment="Left" VerticalAlignment="Top"/> </AppBarButton> <SplitView x:Name="mySplit" DisplayMode="CompactOverlay" CompactPaneLength="0" OpenPaneLength="200" IsPaneOpen="False" > <SplitView.Pane> <StackPanel Background="Pink"> <AppBarButton Click="Button_Click" Height="50" Width="50"> <SymbolIcon Symbol="Bold" HorizontalAlignment="Left" VerticalAlignment="Top"/> </AppBarButton> <TextBlock FontSize="20">第一项</TextBlock> <TextBlock FontSize="20">第二项</TextBlock> <TextBlock FontSize="20">第一项</TextBlock> <TextBlock FontSize="20">第二项</TextBlock> <TextBlock FontSize="20">第一项</TextBlock> <TextBlock FontSize="20">第二项</TextBlock> </StackPanel> </SplitView.Pane> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="100">Spring</TextBlock> </SplitView> </Grid>
CS:
private void Button_Click(object sender, RoutedEventArgs e)
{
mySplit.IsPaneOpen = !mySplit.IsPaneOpen;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」