簡體   English   中英

按下按鈕后如何解鎖按鈕功能?

[英]How to unlock button function after pressing a button?

我試圖接觸WPF。 我的問題是,是否有一種方法可以在按下按鈕登錄(1.)后解鎖按鈕(2.)。 基本上,只要有人沒有登錄,只要有人按下例如Excel -Button,我都會彈出一個錯誤。

該窗口顯示登錄表單以及側面菜單。

在WPF中啟用和禁用按鈕的一種方法是使用RoutedCommands而不是click_events。 有四個步驟:

1)為您正在使用的每個按鈕分配一個靜態資源,作為父UI元素上的資源。 假設您有一個網格作為這些按鈕的父級:

<Grid>
  <Grid.Resources>
      <RoutedCommand x:Key="cmdButtonCommandName" />
  </Grid.Resources>
  ...
</Grid>

2)在同一父項下為每個命令定義一個CommandBinding。 代碼變為:

<Grid>
  <Grid.Resources>
      <RoutedCommand x:Key="cmdButtonCommandName" />
  </Grid.Resources>
  <Grid.CommandBindings>
        <CommandBinding CanExecute="CmdButtonCommandName_CanExecute"
                    Command="{StaticResource cmdButtonCommandName}"
                    Executed="CmdButtonCommandName_Executed"/>
  </Grid.CommandBindings>
...
</Grid>

3)將Static資源分配為所需的Button命令:

<Button Content="Excel" Command="{StaticResource cmdButtonCommandName}"/>

4)在后面的代碼中,添加方法CmdButtonCommandName_CanExecute和CmdButtonCommandName_Executed

private void CmdButtonCommandName_CanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = true;
    }

    private void CmdButtonCommandName_Executed(object sender, ExecutedRoutedEventArgs e)
    {
        ...
    }

您可以在此處設置e.CanExecute,它定義按鈕是啟用還是禁用...

因此,回答您的問題...如果要在按下按鈕B后解鎖(啟用)按鈕A,請在方法buttonB_Executed的末尾設置一個等於true的布爾標志isButtonBpressed,然后在按鈕A_CanExecute方法中設置e。 CanExcute = isButtonBpressed;

一開始它可能看起來很復雜,但是如果您掌握了它,那就很簡單了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM