有沒有簡單的方法讓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