标签: control-template

WPF ListBox,如何隐藏边框并更改所选项目的背景颜色?

我想隐藏ListBox的边框,并使所选项目的背景与未选择的项目相同.

我该怎么做呢?

wpf control-template

29
推荐指数
1
解决办法
3万
查看次数

来自Style DataTrigger的TemplateBinding在ControlTemplate中

在下面的XAML中,我使用带有Border的Rectangle作为ToggleButton的模板.我希望BorderBrush是一个不同的颜色来反映ToggleButton.IsChecked的变化值.不幸的是,我在DataTrigger中使用TemplateBinding的尝试不起作用.我需要做什么呢?

<StackPanel Orientation="Horizontal">
    <StackPanel.Resources>
        <ControlTemplate x:Key="ButtonAsSwatchTemplate">
            <Border BorderThickness="1">
                <Border.Style>
                    <Style>
                        <Setter Property="BorderBrush" Value="Gainsboro" /> 
                        <Style.Triggers>
                            <!-- TemplateBinding doesn't work.-->
                            <DataTrigger                              
                                 Binding={TemplateBinding Property=IsChecked}    
                                 Value="True">
                                <Setter Property="BorderBrush" Value="Black" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Border.Style>
                <Rectangle Fill="{TemplateBinding Property=Background}"
                           Width="15" Height="15" />
            </Border>
        </ControlTemplate>
    </StackPanel.Resources>
    <ToggleButton Template="{StaticResource ButtonAsSwatchTemplate}"
                  HorizontalAlignment="Center" VerticalAlignment="Center"
                  Margin="2" Background="Red" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

编辑

当我构建并重新加载设计器时,我收到以下错误:

错误1属性"绑定"不支持"TemplateBindingExpression"类型的值.

<StackPanel Orientation="Horizontal">
    <StackPanel.Resources>
        <ControlTemplate x:Key="ButtonAsSwatchTemplate">    
            <Border x:Name="SwatchBorder" BorderThickness="1">
                <Rectangle Fill="{TemplateBinding Property=Background}" Width="15" Height="15" />
            </Border>
        <ControlTemplate.Triggers>
            <Trigger Property="ToggleButton.IsChecked" Value="True">
                <Setter TargetName="SwatchBorder" Property="BorderBrush" Value="Yellow" />
            </Trigger>
        </ControlTemplate.Triggers>
            </ControlTemplate> …
Run Code Online (Sandbox Code Playgroud)

wpf datatrigger templatebinding control-template

6
推荐指数
1
解决办法
8250
查看次数

Silverlight 4:制作可关联的标题

我想扩展选项卡控件以具有可关闭的选项卡项.

我找到了Kent的这个WPF解决方案: 在WPF TabControl上 - 我可以在标签标题旁边添加内容吗?

我在Blend中打开了现有silverlight tabcontrol的副本.但是,该结构与WPF tabcontrol看起来完全不同.我无法直接进入Silverlight控件模板.

有谁知道我的好资源?

silverlight xaml control-template

4
推荐指数
1
解决办法
4171
查看次数

如何获取WP7控件的​​默认样式和控件模板?

他们有在MSDN上发布的WPF和Silverlight控件的样式和模板.但不适用于WP7控件.

那么,如何获得WP7控件的​​默认样式和控件模板呢?

silverlight wpf msdn windows-phone-7 control-template

3
推荐指数
1
解决办法
887
查看次数

检查状态未在CheckBox模板中更新

我正在尝试创建一个超链接,根据布尔值更改其文本.我以为我可以利用CheckBox的IsChecked方法.所以我为CheckBox编写了这个ControlTemplate:

 <CheckBox Checked="CheckBox_Checked" IsChecked="{Binding Path=SomeBool, Mode=TwoWay}">
     <CheckBox.Template>
         <ControlTemplate TargetType="{x:Type CheckBox}">
             <BulletDecorator>
                <BulletDecorator.Bullet>
                    <TextBlock>
                        <Hyperlink>
                        <TextBlock x:Name="TextBoxHyperlink">Unchecked</TextBlock>
                        </Hyperlink>
                    </TextBlock>
                </BulletDecorator.Bullet>
                <ContentPresenter />
                </BulletDecorator>
                <ControlTemplate.Triggers>
                   <Trigger Property="IsChecked" Value="True">
                       <Setter TargetName="TextBoxHyperlink" 
                               Property="Text" 
                               Value="Checked" />
                   </Trigger>
               </ControlTemplate.Triggers>
            </ControlTemplate>
        </CheckBox.Template>
    </CheckBox>
Run Code Online (Sandbox Code Playgroud)

但是当我点击超链接时,没有任何反应.检查的状态不会更改,并且TextBlock的Text属性不会更新.有任何想法吗?

.net c# wpf checkbox control-template

1
推荐指数
1
解决办法
501
查看次数