繁体   English   中英

WPF-WP8:如何隐藏按钮可见性?

[英]WPF - WP8: how to hide button visiblity?

我有带按钮的文本框。 我的愿望是,如果文本框为空,则应禁用该按钮(意味着不透明度为0.5)。 如果用户在文本框中输入内容,则该按钮应设置为可见。 例如,如果用户单击了该按钮,则应再次将其禁用,除非该按钮完成了该操作是出于什么目的?

有什么想法,该怎么做?

我的密码;

<Button Content="Go !" Foreground="White" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="283,-3,0,0" Width="161" Name="searchbutton" Click="search" Height="78" BorderBrush="Transparent"/>

如果文本框文本为空,则可以使用此控件模板设置按钮的不透明度。

       <ControlTemplate x:Key="myButtonTemplate" TargetType="{x:Type ContentControl}">
            <StackPanel Orientation="Horizontal">
                <TextBox Width="100" x:Name="searchTxt" Text="{Binding}"></TextBox>
                <Button x:Name="myButton">Search</Button>
            </StackPanel>
            <ControlTemplate.Triggers>
                <Trigger SourceName="searchTxt" Property="Text" Value="">
                    <Setter TargetName="myButton" Property="Opacity" Value="0.2"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>

控制实现模板

<ContentControl Template="{StaticResource myButtonTemplate}">

谢谢

您可以使用值转换器将TextBox的文本转换为按钮的Opacity值:

<TextBox x:Name="txtBox" />
<Button Opacity="{Binding Text, ElementName=txtBox, Converter={StaticResource textToOpacityConverter}}" Content="Go !" Foreground="White" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="283,-3,0,0" Width="161" Name="searchbutton" Click="search" Height="78" BorderBrush="Transparent"  />

这是值转换器:

    public class TextToOpacityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (string.IsNullOrEmpty(value as string)) 
        {
            return 0.5;
        }

        return 1;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

如果您需要有关ValueConverter的更多信息,请参见http://www.c-sharpcorner.com/uploadfile/dpatra/value-converter-in-wpf-part-i/

就像Emanuele所说的那样,仅使用IsEnable属性会将按钮的颜色设置为灰色:)

您可以使用TextChanged事件,然后在其中的文本上使用Length。 对于按钮,只需使用Click事件并将Opacity设置为所需值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM