Saya memiliki sekelompok tombol yang seharusnya berfungsi seperti tombol sakelar, tetapi juga sebagai tombol radio di mana hanya satu tombol yang dapat dipilih / ditekan saat ini. Ini juga harus memiliki status di mana tidak ada tombol yang dipilih / ditekan.
Perilakunya akan seperti toolbar Photoshop, di mana nol atau salah satu alat dipilih kapan saja!
Adakah ide bagaimana ini dapat diterapkan di WPF?
Ini cara termudah menurut saya.
Nikmati! - Pricksaw
sumber
Grid
), gunakan<Grid.Resources> <Style TargetType="RadioButton" BasedOn="{StaticResource {x:Type ToggleButton}}" /> </Grid.Resources>
.<Style BasedOn="{StaticResource {x:Type ToggleButton}}" x:Key="Blubb" TargetType="RadioButton"><Setter Property="Background" Value="Yellow" /></Style>
itu bekerja untuk saya, selamat menikmati!
sumber
Anda selalu bisa menggunakan acara umum di Klik dari ToggleButton yang menetapkan semua ToggleButton.IsChecked di groupcontrol (Grid, WrapPanel, ...) menjadi false dengan bantuan VisualTreeHelper; lalu periksa kembali pengirimnya. Atau sesuatu yang seperti itu.
sumber
Anda dapat meletakkan grid dengan radiobuttons di dalamnya, dan membuat tombol seperti template untuk raduiobuttons. daripada hanya menghapus centang secara terprogram jika Anda tidak ingin tombol diubah
sumber
Anda juga bisa mencoba
System.Windows.Controls.Primitives.ToggleButton
Kemudian tulis kode pada
IsChecked
properti untuk meniru efek tombol radiosumber
ListBoxItem
s.Saya melakukan ini untuk RibbonToggleButtons, tapi mungkin itu sama untuk ToggleButtons biasa.
Saya mengikat IsChecked untuk setiap tombol ke nilai enum "mode" menggunakan EnumToBooleanConverter dari sini Bagaimana mengikat RadioButtons ke enum? (Tentukan nilai enum untuk tombol ini menggunakan ConverterParameter. Anda harus memiliki satu nilai enum untuk setiap tombol)
Kemudian untuk mencegah tidak mencentang tombol yang sudah dicentang, letakkan ini di kode Anda di belakang untuk acara Klik untuk setiap RibbonToggleButtons:
sumber
Untuk membantu orang-orang seperti Julian dan saya (dua menit yang lalu ...). Anda bisa mendapatkan dari
RadioButton
seperti ini.Kemudian, Anda dapat menggunakannya seperti yang disarankan Uday Kiran ...
Metode ini memungkinkan hanya satu
ToggleButton
untuk menjadiChecked
pada satu waktu, dan juga memungkinkan centang.sumber
Saya mengambil beberapa bagian dari jawaban dan menambahkan beberapa kode tambahan. Sekarang Anda dapat memiliki grup tombol sakelar berbeda yang berfungsi seperti satu tombol sakelar:
Dan berbagai grup tombol radio yang terlihat seperti tombol sakelar:
sumber