【问题标题】:Fluent.Ribbon disable iconFluent.Ribbon 禁用图标
【发布时间】:2017-01-01 12:57:09
【问题描述】:

我正在使用fluent:ToggleButton,但我找不到如何禁用该图标。我不使用它,它占据了我没有的地方。

有没有默认的方法来禁用它,还是我需要做一些特别的事情?

【问题讨论】:

    标签: c# fluent-ribbon


    【解决方案1】:

    这是我的解决方法:

    您可以从属性窗口将模板转换为新资源并删除ContentPresenter x:Name="iconImage"

    用法

    <!--Tabs-->
    <Fluent:RibbonTabItem Header="Tab">
        <Fluent:RibbonGroupBox Header="Group">
            <Fluent:ToggleButton Height="30" x:Name="buttonGreen" VerticalContentAlignment="Center" 
                           VerticalAlignment="Top" Header="NoIcon" Template="{DynamicResource NoIconToggleButtonControlTemplate}" />
    

    使用自动生成的资源(图标删除后)

    <fluent:RibbonWindow.Resources>
        <ControlTemplate x:Key="NoIconToggleButtonControlTemplate" TargetType="{x:Type fluent:ToggleButton}">
            <Border x:Name="border" BorderBrush="{DynamicResource TransparentBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{DynamicResource TransparentBrush}" HorizontalAlignment="Left" Height="Auto" VerticalAlignment="Stretch">
                <Grid Height="Auto">
                    <StackPanel x:Name="stackPanel" Orientation="Vertical" Width="Auto">
                        <fluent:TwoLineLabel x:Name="controlLabel" Focusable="False" HorizontalAlignment="Stretch" Margin="2,-3,2,1" Style="{DynamicResource TwoLineLabelStyle}" Text="{TemplateBinding Header}" VerticalAlignment="Stretch"/>
                    </StackPanel>
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="Size" Value="Small">
                    <Setter Property="Orientation" TargetName="stackPanel" Value="Horizontal"/>
                    <Setter Property="Visibility" TargetName="controlLabel" Value="Collapsed"/>
                    <Setter Property="HasTwoLines" TargetName="controlLabel" Value="False"/>
                    <Setter Property="Margin" TargetName="controlLabel" Value="2,-2,2,2"/>
                </Trigger>
                <Trigger Property="Size" Value="Middle">
                    <Setter Property="Orientation" TargetName="stackPanel" Value="Horizontal"/>
                    <Setter Property="Width" TargetName="stackPanel" Value="Auto"/>
                    <Setter Property="HasTwoLines" TargetName="controlLabel" Value="False"/>
                    <Setter Property="Margin" TargetName="controlLabel" Value="2"/>
                    <Setter Property="VerticalAlignment" TargetName="border" Value="Stretch"/>
                </Trigger>
                <Trigger Property="IsPressed" Value="True">
                    <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonPressedOuterBorderBrush}"/>
                    <Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonPressedOuterBackgroundBrush}"/>
                </Trigger>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonCheckedBrush}"/>
                    <Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonCheckedBrush}"/>
                </Trigger>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Opacity" TargetName="controlLabel" Value="0.5"/>
                </Trigger>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver" Value="True"/>
                        <Condition Property="IsPressed" Value="False"/>
                    </MultiTrigger.Conditions>
                    <Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonHoverOuterBackgroundBrush}"/>
                    <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonHoverOuterBorderBrush}"/>
                </MultiTrigger>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver" Value="True"/>
                        <Condition Property="IsPressed" Value="False"/>
                        <Condition Property="IsChecked" Value="True"/>
                    </MultiTrigger.Conditions>
                    <Setter Property="Background" TargetName="border" Value="{DynamicResource ButtonHoverOuterBackgroundBrush}"/>
                    <Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource ButtonHoverOuterBorderBrush}"/>
                </MultiTrigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </fluent:RibbonWindow.Resources>
    

    【讨论】:

    • 这实际上禁用了图标,但它也使选择变得有点时髦。我要摆弄它,也许我可以让它工作。
    • @Ghosttje 不清楚你对选择的意思......什么不起作用?
    • @Ghosttje 只需使用 Size="Middle" 禁用这两行(如果这是问题)
    • 您还可以为上述尺寸设置固定长度,例如 50,方法是将值从自动更改为所需的统一宽度,例如 &lt;Trigger Property="Size" Value="Middle"&gt; 下的 &lt;Setter Property="Width" TargetName="stackPanel" Value="50"/&gt;...依此类推,您可能想要的任何其他自定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2011-01-20
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多