0

ねえ、

その上にチェックボックスがあるボタンを作成しています。ユーザーがマウスでチェックボックスにカーソルを合わせると、ボタンのテキストを変更したいと思います。

これが私が現在持っているものです:

    <Button Grid.Row="1" Margin="0,0,136,12" Name="btnRefresh" Height="28" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="120" Click="btnRefresh_Click">
        <Grid Width="111">
            <CheckBox  Height="16" HorizontalAlignment="Left" Margin="0,2,0,0" Name="cbAutoRefresh" VerticalContentAlignment="Center">
                <CheckBox.Style>
                    <Style TargetType="{x:Type CheckBox}">
                        <Style.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Content" Value="Auto Refresh" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </CheckBox.Style>
            </CheckBox>
            <Label Name="btnLabel" Margin="32,-4,25,-4">Refresh</Label>
        </Grid>
    </Button>

しかし、このようにチェックボックスの内容を変更すると、どうすればbtnLabel内容を変更できますか?

4

1 に答える 1

1

現在、ComboBox のスタイルを変更しているだけなので、Trigger は ComboBox の Content を変更するだけです。

Trigger で他のコントロール プロパティをリッスンするには、次のように Databinding を使用できます。

<Label Name="btnLabel" Margin="32,-4,25,-4">
    <Label.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=comboBoxName, Path=IsMouseOver}" Value="False"
                     <Setter Property="Content" Value="Refresh"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding ElementName=comboBoxName, Path=IsMouseOver}" Value="True"
                     <Setter Property="Content" Value="Auto Refresh"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Label.Style>

</Label>
于 2013-01-03T13:39:23.533 に答える