6

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

<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 操作。

谢谢!

4

1 回答 1

3

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

最简单的解决方法是更改​​标记以满足您的需求。我宁愿把Cancel按钮去掉,Grid这样它就不会受到IsEnabled属性的影响Grid

于 2012-04-30T06:54:35.803 回答