2011-01-14 5 views
1

Я новичок в WPF, и я столкнулся с проблемой, когда мне нужна помощь:Помощь пытается использовать ToggleButton в dictionnary

Моя среда является .net 4, VS2010, выиграть 7

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

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

Спасибо заранее

...

+0

Спасибо за ответы, это действительно помогло мне. –

ответ

1

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

 <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

В зависимости от того, что ваши 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, которые будут использоваться вместе в качестве элемента управления поиском).