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に設定すると、ネストされたすべての視覚要素が無効になります。要素の内容は、その存在の一部と考える必要があります。要素を無効にすることは、そのすべての部分を無効にすることを意味します。

最も簡単な回避策は、ニーズに合わせてマークアップを変更することです。キャンセルボタンをこのボタンから外して、プロパティのGrid影響を受けないようにします。IsEnabledGrid

于 2012-04-30T06:54:35.803 に答える