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

时间:2013-09-02 05:09:46

标签: c# wpf xaml windows-phone-8

我有带按钮的文本框。我的目标是,如果文本框为空,则应禁用该按钮(表示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"/>

4 个答案:

答案 0 :(得分:0)

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

       <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}">

由于

答案 1 :(得分:0)

您可以使用值转换器将TextBox的文本转换为按钮的不透明度值:

<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/

答案 2 :(得分:0)

就像说Emanuele一样,使用IsEnabled属性会将按钮的颜色设置为灰色:)

答案 3 :(得分:0)

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