Помогите попытаться использовать ToggleButton в словаре - PullRequest
1 голос
/ 14 января 2011

Я очень новичок в WPF и столкнулся с проблемой, в которой мне нужна помощь:

Моя среда .net 4, VS2010, win 7

Я хочу определить стилизованный переключательКнопка, которую я буду использовать из пользовательского элемента управления.Когда я объявляю элемент управления ToggleButton в UserControl, я хочу дать 2 возможных содержимого в соответствии с состоянием кнопки.

Мой вопрос: я не знаю, как объявить мою кнопку с 2 содержимым (один, когда IsChecked= true, один, когда IsChecked = false), я включил написанный мной код, который не компилируется.

Заранее спасибо

...

Ответы [ 3 ]

1 голос
/ 14 января 2011

Вы должны иметь возможность использовать что-то вроде:

      <ToggleButton>
        <ToggleButton.Style>
            <Style TargetType="{x:Type ToggleButton}">
                <Setter Property="Content">
                    <Setter.Value>
                        <Grid>
                            <TextBlock>Click Me</TextBlock>
                        </Grid>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter Property="Content">
                            <Setter.Value>
                                <Grid>
                                    <TextBlock>Click Me Again</TextBlock>
                                </Grid>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ToggleButton.Style>
    </ToggleButton>
1 голос
/ 14 января 2011

В зависимости от того, какие у вас 2 содержания, вы можете сделать что-то вроде:

<ToggleButton IsChecked="True">
    <ToggleButton.Style>
        <Style TargetType="{x:Type ToggleButton}">
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Button></Button>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
                <Trigger Property="IsChecked" Value="False">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate>
                                <Border Background="Red" />
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>

В этом примере ToggleButton имеет один контент, когда он отмечен (кнопка), и другой контент, когда он не отмечен (красная граница фона).Вам придется обрабатывать действия для отдельного переключения состояния IsChecked.

Кроме того, если ToggleButton является единственным элементом управления в вашем UserControl, нет необходимости использовать UserControl, просто измените стиль ToggleButton.UserControls более уместны, когда вы хотите сгруппировать элементы управления вместе, чтобы иметь определенную функциональность (например, текстовое поле поиска и кнопку Go для совместного использования в качестве элемента управления поиском).

0 голосов
/ 14 января 2011

Стиль ToggleButton можно настроить, задав ControlTemplate

check WPF ControlTemplate Trigger tip .это поможет вам

...