【发布时间】:2016-12-12 06:10:12
【问题描述】:
我正在尝试在用户登录后创建一些控件。
我有一个带有 3 个选项卡的 TabControl:第一个用于登录,第二个是需要显示大量图块的地方(MahApps.Metro Tile)。每个图块代表一个酒店房间。
第三个标签显示一个不确定的进度条。当用户登录时,会显示此选项卡。
我是怎么做到的:
//User is logged in, so display the progress bar and add controls
tabControl.SelectedIndex = 2; // display the progress bar tab
private void populateHotel(Hotel hotel)
{
List<Room> rooms = hotel.rooms;
Tile tile;
tile_wrapper.Children.Clear();
foreach (Room room in rooms)
{
sql.insertHotelRoom(room);
tile = new Tile();
tile.Title = room.room_num;
tile.Content = room.name_fa;
tile.FontFamily = titleRooms.FontFamily; // titleRooms is a textbox
tile.TitleFontSize = item1.TitleFontSize; // item1 is an already created tile
tile.FontSize = item1.FontSize;
tile_wrapper.Children.Add(tile);
}
// Now display the rooms tab
tabControl.SelectedIndex = 1;
}
问题是,这会冻结 UI 线程并且所有内容都会冻结,包括进度条,直到它创建所有图块为止。
如何添加控件以使进度条仍然响应?
【问题讨论】: