2013-03-09 55 views
2

任何人都可以用一個簡單的模板來幫助我使WPF ToggleButton根據切換狀態顯示「是」還是「否」?是/否的WPF模板ToggleButton

我不想讓它看起來像一個按鈕,雖然,只是一段文字,顯示爲是或否。

我想將它作爲一個模板,我可以將其作爲樣式添加到所有現有的切換控件中。

我嘗試過Blend,但我對模板不熟悉,不知道該怎麼做。

回答

11

上@ Batuu的答覆構建,將剛出與內容文本剛剛更新更新了風格

<Style x:Key="OnOffToggleStyle" TargetType="ToggleButton"> 
    <Setter Property="Content" Value="Off"/> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type ToggleButton}"> 
     <ContentPresenter /> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
    <Style.Triggers> 
     <Trigger Property="IsChecked" Value="True"> 
      <Setter Property="Content" Value="On"> 
      </Setter> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

此處添加的內容與原始回覆相比是

<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type ToggleButton}"> 
     <ContentPresenter /> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 

您基本上將按鈕的模板設置爲它所包含的內容。

+0

完美,非常感謝!很容易看到,但是如何找出哪些屬性可用於像這樣的控件。我可以使用Blend來使用這種風格嗎? – Paul 2013-03-10 15:14:20

+0

所有的UI控件在WPF中看起來都很少,並且可以通過混合編輯任何控件的樣式,只需右鍵單擊設計器中的控件,然後選擇「編輯模板」 - >「編輯副本」並按照對話框進行操作。 (當你嘗試編輯一個簡單的默認控件時,它看起來會有很多信息,最好的學習方法是刪除你不使用的所有東西,然後嘗試運行應用程序,並慢慢地添加一些內容以查看實際對應的內容什麼) – Viv 2013-03-10 18:49:45

+0

非常感謝提示Viv! – Paul 2013-03-11 09:03:50

4

你可以用一個風格做到這一點很容易:

<Window x:Class="WpfTest.MainWindow" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <Style x:Key="OnOffToggleStyle" TargetType="ToggleButton"> 
      <Style.Triggers> 
       <Trigger Property="IsChecked" Value="True"> 
        <Setter Property="Content"> 
         <Setter.Value> 
          <TextBlock Text="Yes"/> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
       <Trigger Property="IsChecked" Value="False"> 
        <Setter Property="Content"> 
         <Setter.Value> 
          <TextBlock Text="No"/> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Window.Resources> 
    <Grid> 
     <ToggleButton Style="{StaticResource OnOffToggleStyle}"/> 
    </Grid> 
</Window> 
+0

哇,很容易,當你看到它完成!它仍然看起來像一個按鈕,很容易刪除其餘的按鈕樣式,所以我只是留下了標籤? – Paul 2013-03-09 16:51:33