有没有简单的方法让ToggleButton显示为普通按钮?我试图点击按钮,它会触发IsEnabled为另一个控件为false。用ToggleButton,我可以在IsChecked属性上做一个触发器。但是切换按钮在切换时会显得非常不同。谢谢。WPF ToggleButton看起来像普通按钮
回答
在WPF设计器中,右键点击相关的ToggleButton并选择Edit Template -> Edit a Copy
。选择适当的设置并单击确定。
ToggleButton的默认模板将被添加到您的XAML中。在那里,删除此代码:
<Trigger Property="IsChecked" Value="true">
<Setter Property="RenderPressed" TargetName="Chrome" Value="true"/>
</Trigger>
您可以重复多的ToggleButtons这种风格/模板。
编辑
您在您的处置另一种选择。使用标准Button
并连接Click
事件处理程序或Command
绑定,该绑定会执行代码以更新IsChecked
属性,例如,
<CheckBox IsChecked="{Binding IsChecked}" IsEnabled="False" Content="State" />
<Button Content="Toggle" Command="{Binding ToggleStateCommand}" />
然后,当然,你的命令只是必须执行
IsChecked = !IsChecked
这一切都假定你有一个ICommand
实现你舒服和你正在做的有点MVVM,但也许这就是有点超出了这个Q/A的范围。
最简单的方法是使ToggleButton
透明,并显示其他内容控件。为内容设置IsHitTestVisible = False
。
也尝试使用保证金值。
<ToggleButton Background="Transparent" BorderBrush="Transparent" BorderThickness="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<Button Content="Toggle Button" Margin="-5" IsHitTestVisible="True" />
</ToggleButton>
以上可定制使用切换按钮的内容,如:
<ToggleButton Content="Toggle Button" Background="Transparent" BorderBrush="Transparent" BorderThickness="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Canvas.Left="233" Canvas.Top="158">
<ToggleButton.ContentTemplate>
<DataTemplate>
<Button IsHitTestVisible="False" Content="{Binding}"/>
</DataTemplate>
</ToggleButton.ContentTemplate>
</ToggleButton>
此解决方案将鼠标悬停在按钮上时禁用了动画 – Helic
@Helic您可以将动画向下移动到内部按钮。如果你发布你的动画代码,我可以修改我的答案。 – AnjumSKhan
- 1. NSButton的子类化,需要使它看起来像一个普通的按钮
- 2. 阻止链接看起来像按钮
- 3. 链接看起来像提交按钮
- 4. 使按钮看起来像文字
- 5. 按钮图像看起来与反色
- 6. Bootstrap使文本看起来像按钮
- 7. 使复选框看起来像按钮
- 8. 看起来像链接的按钮
- 9. iOS制作按钮,看起来像UINavigationItem
- 10. 按钮VS可点击图像,看起来像按钮
- 11. wpf ListBox看起来像datagrid?
- 12. 如何让我的提交按钮看起来不像按钮?
- 13. 响应按钮看起来像是两个按钮:悬停
- 14. Bootstrap导航栏,按钮看起来像菜单折叠按钮
- 15. 充分利用FLEX4按钮看起来就像Flex3按钮
- 16. 黑莓自定义按钮,看起来像默认按钮
- 17. 设置按钮看起来像默认的安卓按钮
- 18. 制作单选按钮看起来像是按钮
- 19. 使默认按钮看起来像正常按钮
- 20. WPF ToggleButton的AutomationElement - 有ClassName按钮
- 21. mmenu不能正常工作,看起来像普通的html
- 22. 如何使ToolStripComboBox看起来像一个普通的组合框
- 23. 我如何让我的网页按钮看起来像Facebook按钮的按钮?
- 24. 使按钮看起来按下
- 25. 复选框看起来像Radiobutton WPF
- 26. 使WPF DataGrid看起来像一个ListView
- 27. WPF 3D编辑器看起来像3DSMAX
- 28. 看起来像excel的WPF窗口
- 29. 制作可可按钮看起来像是按编程方式
- 30. 在Swing中使图像按钮看起来被按下/点击
感谢。有没有一种简单的方法来做到这一点?不想从Button复制样式代码。 – Helic
这很“容易”,而“重复” - 如果你可以这样称呼 - 是最小的。该模板只使用自定义的'ButtonChrome'对象,该对象具有适用当前Windows主题的适当样式。这是我会主张的唯一一种“重复”。也就是说,你对限制滥用的热情是一件好事。 – Guttsy