【问题标题】:how to set the color of toggle button from style already defined in app xaml?如何从已在 app xaml 中定义的样式设置切换按钮的颜色?
【发布时间】:2011-06-02 13:06:13
【问题描述】:

我创建了一个按钮,我想使用应用程序 xaml 中的样式更改其颜色。 但是,我没有得到确切的代码,而且我是 xaml 的新手。

谁能帮我举个例子。

我也很困惑使用哪个属性来改变颜色是指背景还是前景?

【问题讨论】:

    标签: xaml button coding-style properties


    【解决方案1】:
    <Window
      x:Class="ToolBar"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="ToolBar"
      Width="300"
      Height="300">
      <DockPanel>
        <ToolBarTray
          DockPanel.Dock="Top"
          IsLocked="True"
          Orientation="Horizontal">
          <ToolBar
            x:Name="ToolBar1">
            <ToggleButton>
              <ToggleButton.Style>
                <Style
                  TargetType="{x:Type ToggleButton}">
                  <Setter Property="ContentTemplate">
                    <Setter.Value>
                      <DataTemplate>
                        <Label>Play</Label>
                      </DataTemplate>
                    </Setter.Value>
                  </Setter>
                  <Style.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                      <Setter Property="ContentTemplate">
                        <Setter.Value>
                          <DataTemplate>
                            <Label>Pause</Label>
                          </DataTemplate>
                        </Setter.Value>
                      </Setter>
                      <Setter Property="BorderBrush" Value="Transparent" />
                      <Setter Property="Panel.Background" Value="Transparent" />
                    </Trigger>
                  </Style.Triggers>
                </Style>
              </ToggleButton.Style>
            </ToggleButton>
          </ToolBar>
        </ToolBarTray>
      </DockPanel>
    </Window>
    

    在工具栏中,两个语句:

    <Setter Property="BorderBrush" Value="Transparent" />
    <Setter Property="Panel.Background" Value="Transparent" />
    

    使切换按钮在选中切换按钮时显示为正常状态,但是当您将鼠标悬停在选中的切换按钮上时不会发生任何变化。

    如果我将切换按钮包装在另一个布局中,请说包装布局:

    <Window
      x:Class="ToolBar"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="ToolBar"
      Width="300"
      Height="300">
      <WrapPanel>
            <ToggleButton>
              <ToggleButton.Style>
                <Style
                  TargetType="{x:Type ToggleButton}">
                  <Setter Property="ContentTemplate">
                    <Setter.Value>
                      <DataTemplate>
                        <Label>Play</Label>
                      </DataTemplate>
                    </Setter.Value>
                  </Setter>
                  <Style.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                      <Setter Property="ContentTemplate">
                        <Setter.Value>
                          <DataTemplate>
                            <Label>Pause</Label>
                          </DataTemplate>
                        </Setter.Value>
                      </Setter>
                      <Setter Property="BorderBrush" Value="Transparent" />
                      <Setter Property="Panel.Background" Value="Transparent" />
                    </Trigger>
                  </Style.Triggers>
                </Style>
              </ToggleButton.Style>
            </ToggleButton>
      </WrapPanel>
    </Window>
    

    两种说法:

    <Setter Property="BorderBrush" Value="Transparent" />
    <Setter Property="Panel.Background" Value="Transparent" />
    

    您可以在以下网址找到教程 http://social.msdn.microsoft.com/Forums/pl-PL/wpf/thread/7e565a41-0aad-40a3-a3c4-666c5caf38fe

    谢谢 迪帕克

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 2015-05-11
      相关资源
      最近更新 更多