禁用&灰色标签而不禁用组件

时间:2014-01-27 17:14:07

标签: c# wpf

我有一个应用程序通过两种方法之一写入RFID标签,每种方法都有一个TabControl,其中包含方法的设置,以及“开始写入”按钮。

当用户单击“开始写入”按钮时,选项卡页面上的某些组件应保持“实时”状态,但应禁用切换选项卡的功能,直到写入停止为止。

WPF中是否有一种方法可以禁用和灰显选项卡(即,除了监听选项卡更改并将其切换回来)而不禁用选项卡中的组件?

我希望应用程序具有禁用选项卡控件的“外观和感觉”,而不会禁用,特别是“停止写入”按钮。

2 个答案:

答案 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;
     }
}

其中AllowTabChangeDependencyProperty,它绑定到 VM 代码隐藏中的相应属性。 与此同时,您必须运行BackgroundThread,这将继续进行I / O操作,并在完成处理后将AllowTabChange设置为 true