Kami membuat aplikasi XBAP yang kami butuhkan untuk memiliki sudut membulat di berbagai lokasi dalam satu halaman dan kami ingin memiliki wadah WPF Rounded Corner untuk menempatkan banyak elemen lain di dalamnya. Apakah ada yang punya beberapa saran atau contoh kode tentang bagaimana kita bisa mencapai hal ini? Apakah dengan gaya di a atau dengan membuat kontrol kustom?
wpf
rounded-corners
FarrEver
sumber
sumber
Jawaban:
Anda tidak memerlukan kontrol khusus, cukup letakkan penampung Anda di elemen perbatasan:
Anda dapat mengganti
<Grid/>
dengan salah satu wadah tata letak ...sumber
<Border BorderBrush="Black" BorderThickness="1" CornerRadius="8">
adalah pengganti yang cocok untuk ini, sedikit lebih baikSaya tahu bahwa ini bukan jawaban untuk pertanyaan awal ... tetapi Anda sering ingin memotong konten bagian dalam dari batas sudut melengkung yang baru saja Anda buat.
Chris Cavanagh telah menemukan cara terbaik untuk melakukan hal ini.
Saya telah mencoba beberapa pendekatan berbeda untuk ini ... dan saya pikir yang satu ini menarik.
Ini xaml di bawah ini:
sumber
Saya hanya harus melakukan ini sendiri, jadi saya pikir saya akan memposting jawaban lain di sini.
Berikut adalah cara lain untuk membuat batas sudut membulat dan memotong konten dalamnya . Ini adalah cara mudah dengan menggunakan properti Clip. Sangat menyenangkan jika Anda ingin menghindari VisualBrush.
XAML:
Kode untuk konverter:
sumber
VB.Net implementasi berbasis kode dari solusi kontrol Perbatasan kobusb. Saya menggunakannya untuk mengisi ListBox of Button kontrol. Kontrol Tombol dibuat dari ekstensi MEF. Setiap ekstensi menggunakan atribut ExportMetaData MEF untuk Deskripsi ekstensi. Ekstensi adalah objek bagan VisiFire. Pengguna menekan sebuah tombol, yang dipilih dari daftar tombol, untuk menjalankan grafik yang diinginkan.
sumber
Jika Anda mencoba untuk meletakkan tombol di perbatasan persegi panjang bulat, Anda harus melihat contoh msdn . Saya menemukan ini dengan mencari gambar masalah di Google (bukan teks). Persegi panjang luarnya yang besar (untungnya) mudah dilepas.
Perhatikan bahwa Anda harus mendefinisikan ulang perilaku tombol (karena Anda telah mengubah ControlTemplate). Artinya, Anda perlu menentukan perilaku tombol saat diklik menggunakan tag Pemicu (Property = "IsPressed" Value = "true") di tag ControlTemplate.Triggers. Semoga ini menyelamatkan orang lain waktu saya tersesat :)
sumber