我有一个应用程序通过两种方法之一写入RFID标签,每种方法都有一个TabControl,其中包含方法的设置,以及“开始写入”按钮。
当用户单击“开始写入”按钮时,选项卡页面上的某些组件应保持“实时”状态,但应禁用切换选项卡的功能,直到写入停止为止。
WPF中是否有一种方法可以禁用和灰显选项卡(即,除了监听选项卡更改并将其切换回来)而不禁用选项卡中的组件?
我希望应用程序具有禁用选项卡控件的“外观和感觉”,而不会禁用,特别是“停止写入”按钮。
答案 0 :(得分:0)
可能是因为当您点击“开始书写”按钮时,在UI thread
上运行RFID标签的工作。创建一个用于编写工作的线程或在BackgroundWorker
中添加写入代码。
答案 1 :(得分:0)
您必须编写附加行为以防止切换切换。从 VM或代码隐藏绑定的其他属性将启用阻止功能:
private void OnTabItemSelecting(object sender, CurrentChangingEventArgs args)
{
if(!AllowTabChange)
{
var tabControl = sender as TabControl;
var prevId = tabControl.Items.IndexOf(tabControl.SelectedContent);
tabControl.SelectedIndex = prevId;
}
}
其中AllowTabChange
是DependencyProperty
,它绑定到 VM 或代码隐藏中的相应属性。
与此同时,您必须运行BackgroundThread
,这将继续进行I / O操作,并在完成处理后将AllowTabChange
设置为 true 。