How to Enable/Disable button in wpf

前端 未结 5 371
温柔的废话
温柔的废话 2021-01-02 10:51

I Have 2 button , Start And capture. I want disable capture button on form load and enable start. and on after click on start disable start button and enable capture. Pleas

相关标签:
5条回答
  • 2021-01-02 11:15

    Set IsEnabled="False" to disable the button

    <Button Name="btn" IsEnabled="False" Content="press"/>
    

    Set IsEnabled="True" to enable the button

    <Button Name="btn" IsEnabled="True" Content="press"/>
    

    Hope this helps

    0 讨论(0)
  • 2021-01-02 11:17

    You should store current state in some variable (e.g. _capturing). When variable changing, you refresh IsEnabled property.

    Xaml code:

    <Button Content="Start" Name="StartButton" Grid.Row="0" Click="StartButton_Click" />
    <Button Content="Capture" Name="CaptureButton" Grid.Row="1" Click="CaptureButton_Click"/>
    

    C# code:

    public partial class MainWindow : Window
    {
        private bool _capturing;
    
        public MainWindow()
        {
            InitializeComponent();
    
            // Some code
    
            _capturing = false;
            UpdateButtons();
        }
    
        private void StartButton_Click(object sender, RoutedEventArgs e)
        {
            // Some code
    
            _capturing = true;
            UpdateButtons();
        }
    
        private void CaptureButton_Click(object sender, RoutedEventArgs e)
        {
            // Some code
    
            UpdateButtons();
        }
    
        private void UpdateButtons()
        {
            StartButton.IsEnabled = !_capturing;
            CaptureButton.IsEnabled = _capturing;
        }
    }
    

    UPDATE

    You should add click handler and your xaml code will work:

    <Button Click="StartButton_Click" Content="Button" Height="77" HorizontalAlignment="Left" Margin="92,151,0,0" Name="button1" VerticalAlignment="Top" Width="109">
        <Button.Background>
            <ImageBrush ImageSource="/WpfApplication1;component/Images/images.jpg" />
        </Button.Background>
    </Button>
    <Button Click="CaptureButton_Click" Content="Button" Height="77" HorizontalAlignment="Left" Margin="229,151,0,0" Name="button2" VerticalAlignment="Top" Width="112" IsEnabled="False" >
        <Button.Background>
            <ImageBrush ImageSource="/WpfApplication1;component/Images/images.jpg" />
        </Button.Background>
    </Button>
    

    0 讨论(0)
  • 2021-01-02 11:24
    <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Button Name="BStart" Content="Start" Width="100" Height="50" HorizontalAlignment="Left" Click="BStart_Click" />
            <Button Name="BCapture" Content="Capture" Width="100" Height="50" HorizontalAlignment="Right" IsEnabled="False" />
        </Grid>
    </Window>
    

    enter image description here
    you can disable Capture by xaml and then enable it by writing code in c#.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace WpfApplication1
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void BStart_Click(object sender, RoutedEventArgs e)
            {
                BStart.IsEnabled = false;
                BCapture.IsEnabled = true;
            }
        }
    }
    

    for enable and disable use IsEnabled Property. and for clicking on the button use Click event.

    0 讨论(0)
  • 2021-01-02 11:27

    Yes I got my answer. Just make simeple solution

    btnhide.visibility= system.visibility. hidden;
    
    0 讨论(0)
  • 2021-01-02 11:29

    There are two ways to disable a button In C# WPF.

    1. In .xaml File
      Using IsEnabled="False". If you set False to IsEnabled attribute, then your button will be disabled by default.
    2. In .cs File
      ButtonName.IsEnabled = false; If you set IsEnabled property as false for the button, it will disable the button
    0 讨论(0)
提交回复
热议问题