在禁用的网格中启用特定按钮

时间:2012-04-30 06:36:00

标签: wpf button grid isenabled

我在网格中有一个按钮,其中包含许多其他按钮和控件,例如

<Grid IsEnabled="false">
    <Grid.ColumnsDefinition>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnsDefinition>
    <Button Content="Run"/>
    <Button Grid.Column="1" Content="Test"/>
    <Button Grid.Column="2" Content="Cancel" IsEnabled="true"/>
</Grid>

如您所见,网格已禁用,但其中的取消按钮应启用。

我遇到的问题是即使我将内部按钮设置为启用,它也会保持禁用状态,可能是因为其父级已被禁用。

有没有办法覆盖此行为并强制启用该按钮?

我正在使用它来处理在后台运行长进程的情况,因此应禁用除取消进程之外的所有UI操作。

谢谢!

1 个答案:

答案 0 :(得分:2)

没有。将IsEnabled属性设置为false会导致禁用所有嵌套的可视元素。人们应该将元素的内容视为其存在的一部分。禁用元素意味着禁用其所有部分。

最简单的解决方法是更改​​标记以满足您的需求。我宁愿将取消按钮从此Grid中删除,因此它永远不会受到IsEnabled

Grid属性的影响