【发布时间】:2018-08-16 13:27:00
【问题描述】:
我有两个可以完美运行的按钮。我控制可见性: 1. 一个按钮消失,被另一个按钮代替。 2. 图像是指向左或右的箭头。 2. 颜色边框会发生应有的变化。
这行得通,但感觉很笨拙。我认为这应该使用 ToggleButton 来完成,但我无法让 ToggleButton 正常工作。
工作按钮:
<Button Name="ActiveJobGridButtonRight" Grid.Row="1" Grid.Column="2"
Command="{Binding JobGridListViewVisibility}"
Style="{DynamicResource GraphicIconStyle}" IsEnabled="True"
Visibility="{Binding JobViewGridVisible, Converter={StaticResource ReverseBooleanToVisibilityConverter}, UpdateSourceTrigger=PropertyChanged}"
ToolTip="Expand Jobs List">
<Image Source="/Graphics/arrow_right24.png" Width="24" Height="24" Margin="0"></Image>
</Button>
<Button Name="ActiveJobGridButtonLeft" Grid.Row="1" Grid.Column="2"
Command="{Binding JobGridListViewVisibility}"
Style="{DynamicResource GraphicIconStyle}" IsEnabled="True"
Visibility="{Binding JobViewGridVisible, Converter={StaticResource booleanToVisibility}, UpdateSourceTrigger=PropertyChanged}"
ToolTip="Collapse Jobs List">
<Border BorderBrush="{Binding Path=JobViewGridVisible, Converter={StaticResource SecurityAccessBrushColorConverter}}"
BorderThickness="2" CornerRadius="4">
<Image Source="/Graphics/arrow_left24.png" Width="24" Height="24" Margin="0"></Image>
</Border>
</Button>
我的切换按钮尝试:
<ToggleButton x:Name="EmployeeListViewExpansionToggleButton" Grid.Row="1" Grid.Column="2" Width="28" Height="28"
Background="Transparent" BorderThickness="0">
<Border BorderBrush="{Binding ElementName=EmployeeListViewExpansionToggleButton, Path=IsChecked, Converter={StaticResource SecurityAccessBrushColorConverter}}"
BorderThickness="2" CornerRadius="4" Background="Transparent">
<Image Source="/Graphics/arrow_right24.png" Width="24" Height="24" Margin="0" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<ScaleTransform ScaleX="{Binding ElementName=EmployeeListViewExpansionToggleButton, Path=IsChecked, Converter={StaticResource BooleanToRotationConverter}}"/>
</Image.RenderTransform>
</Image>
</Border>
</ToggleButton>
转换器:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var b = (bool)value;
if (b)
{
return -1;
}
else
{
return 1;
}
}
【问题讨论】:
标签: wpf button togglebutton