如何制作加载屏幕
本文关键字:屏幕 加载 何制作 | 更新日期: 2023-09-27 18:08:20
我正在编写UWP应用程序,我下载了JSON
,反序列化并绑定。
代码如下:
public async void Down()
{
WritingToTable wrt = new WritingToTable();
wrt.Writing();
RestAPI rest = new RestAPI("http://simplegames.com.ua/wp-json/wc/v1/",
"ck_9d64c027d2c5f81b8bed3342eeccc6d337be813d", "cs_60697b1e6cbdeb8d62d19e0765e339f8e3334754");
WCObject wc = new WCObject(rest);
//Get all products
var orders = await wc.GetOrders(new Dictionary<string, string>()
{
{"per_page", "100"}
});
string products = orders.ToFormattedJsonString();
List<RootObject> rootObjectData = JsonConvert.DeserializeObject<List<RootObject>>(products);
foreach (RootObject root in rootObjectData)
{
string date = root.date_created;
string name = root.billing.first_name;
Orders = new ObservableCollection<RootObject>(rootObjectData)
{
new RootObject {date_created = date}
};
OrdersGridView.ItemsSource = Orders;
}
}
如何制作加载屏幕?例如,当数据正在下载和绑定时,应用程序显示加载屏幕,当所有完成的应用程序显示数据。
有很多方法可以在UWP中创建加载屏幕。这完全取决于你想要达到什么目标。从你的问题中,我明白你的目标是阻止用户与应用程序的交互,而数据正在加载,并显示一个UI,通知用户关于加载操作。
最简单的方法是在xaml中定义一个网格。像这样<Grid
Background="{ThemeResource ABrushResource}"
Canvas.ZIndex="1"
Visibility="{Binding IsLoading, Converter = {StaticResource BooleanToVisibilityConverter}">
<!--anything else you want to show-->
<ProgressBar
IsIndeterminate="True"
VerticalAlignment="Center"
/>
</Grid>
确保Grid
在可见时覆盖整个页面。使用画布。如有必要,将其放在任何其他内容的上方。
你可以在ViewModel和BooleanToVisibilityConverter
中使用布尔属性来控制Grid
的可见性。您可以自己编写转换器,也可以在网上找到它
所以当你启动对你的服务的调用时,你可以这样做。
try{
IsLoading = true;
var orders = await wc.GetOrders(new Dictionary<string, string>() {
{ "per_page", "100" }});
}
catch (Exception ex)
{
// handle any exceptions, e.g. network exceptions
}
finally
{
IsLoading = false;
}