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

Dro*_*ror 6 wpf grid button 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>
Run Code Online (Sandbox Code Playgroud)

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

我遇到的问题是,即使我将内部按钮设置为启用,它仍然处于禁用状态,可能是因为其父级已禁用.

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

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

谢谢!

EvA*_*lex 4

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

最简单的解决方法是更改​​标记以满足您的需求。我宁愿将“取消”按钮从中取出Grid,这样它就不会受到IsEnabled属性的影响Grid

  • 我在这里带来的代码示例只是我拥有的更复杂的 UI 结构的简单版本。我知道您的解决方案可行,但这意味着我将处理许多其他同级控件的启用和禁用,这对于一个简单的请求来说将是一个很大的开销。我想知道是否还有其他解决方案。谢谢! (3认同)