Controled control untuk wpf
Mendukung .NET Framework (4.5.2, 4.6.2 dan lebih besar), .NET Core (3.1) dan .NET 5 (pada Windows)

TextBoxInputMaskBehavior dapat digunakan untuk menampilkan topeng di dalam TextBox .
Catatan: Ini hanya topeng dan tidak memvalidasi teks Anda.
< TextBlock Grid.Row= " 0 "
Grid.Column= " 0 "
Margin = " 4 "
Text = " Datetime " />
< TextBox Grid.Row= " 0 "
Grid.Column= " 1 "
Margin = " 4 " >
< behaviors : Interaction .Behaviors>
< controlzEx : TextBoxInputMaskBehavior InputMask = " 00/00/0000 " />
</ behaviors : Interaction .Behaviors>
</ TextBox >
< TextBlock Grid.Row= " 1 "
Grid.Column= " 0 "
Margin = " 4 "
Text = " Phone Number " />
< TextBox Grid.Row= " 1 "
Grid.Column= " 1 "
Margin = " 4 " >
< behaviors : Interaction .Behaviors>
< controlzEx : TextBoxInputMaskBehavior InputMask = " ( 999 ) 000 000 - 00 "
PromptChar = " _ " />
</ behaviors : Interaction .Behaviors>
</ TextBox >TextboxInputmaskbehavior asli diambil dari dari blog Blindmeis.

KeyboardNavigationEx adalah kelas penolong untuk masalah pemfokusan umum. Fokus elemen UI itu sendiri bukan masalah. Tetapi jika kita menggunakan metode pemfokusan umum, kontrol mendapatkan fokus, tetapi tidak mendapatkan gaya visual fokus.
Kelas KeyboardNavigation asli menangani gaya visual hanya jika kontrol mendapatkan fokus dari perangkat keyboard atau jika SystemParameters.Keyboardcues benar.
Dengan KeyboardNavigationEx Anda dapat memperbaikinya dengan dua cara sederhana.
Dalam kode di belakang:
public partial class MainWindow : Window
{
public MainWindow ( )
{
InitializeComponent ( ) ;
this . Loaded += ( s , e ) => { KeyboardNavigationEx . Focus ( this . TheElementWhichShouldGetTheFocus ) ; } ;
}
}atau di xaml:
< Button controlzex:KeyboardNavigationEx.AlwaysShowFocusVisual= " True " >Hey, I get the focus visual style on mouse click!</ Button >Alat pemindahan otomatis. Info lebih lanjut.
< Button Margin = " 5 "
Padding = " 5 "
Content = " Test Button 2 "
ToolTipService.ShowDuration= " 20000 " >
< Button .ToolTip>
< ToolTip local:ToolTipAssist.AutoMove= " True " >
< ToolTip .Template>
< ControlTemplate >
< Grid >
< Border Background = " Gray "
BorderBrush = " Black "
BorderThickness = " 1 "
Opacity = " 0.9 "
SnapsToDevicePixels = " True " />
< TextBlock Margin = " 5 "
Foreground = " WhiteSmoke "
FontSize = " 22 "
Text = " ToolTipHelper AutoMove sample "
TextOptions.TextFormattingMode= " Display "
TextOptions.TextRenderingMode= " ClearType " />
</ Grid >
</ ControlTemplate >
</ ToolTip .Template>
</ ToolTip >
</ Button .ToolTip>
</ Button > GlowWindowBehavior menambahkan cahaya di sekitar jendela Anda.
Dimulai dengan Windows 11 perilaku dapat digunakan untuk mengontrol warna perbatasan jendela asli dan secara otomatis melakukannya, ketika Windows 11 terdeteksi.
Ini dapat dimatikan dengan mengatur PreferDWMBorder menjadi false .
CONTROLZEX menyediakan krom khusus untuk windows WPF dan beberapa perbaikan yang lebih dalam untuk itu.
Apa yang disediakannya:
WindowStyle ( None , SingleBorderWindow , ThreeDBorderWindow dan ToolWindow )IsNCActiveCornerPreference )NonClientControlProperties.HitTestResult dan NonClientControlProperties.ClickStrategy )Sebagian besar perbaikan dan perbaikan berasal dari Mahapps.metro dan FLUENT.Ribbon.
Implementasi teknik konkret yang dijelaskan di sini:
Entri Blog dari Microsoft di Window Chrome Kustom
Ini adalah garpu dari Perpustakaan Integrasi Shell Microsoft WPF asli. Implementasi Microsoft saat ini dapat ditemukan:
Popup khusus yang dapat digunakan dalam templat kesalahan validasi atau sesuatu yang lain seperti di materialDesignInxamltoolkit atau mahapps.metro.
PopupEx menyediakan beberapa fitur bagus tambahan:
TabControl khusus yang menyimpan konten TabItem di VisualTree sambil tidak memilih mereka, jadi tidak ada mimpi buruk yang dilakukan kembali dilakukan, setelah memilih TabItem lagi. Perilaku visibilitas dapat ditetapkan oleh properti ketergantungan ChildContentVisibility .
Penggunaan:
< controlz : TabControlEx >
< TabItem Header = " Lorem " >
< TextBlock Text = " Lorem ipsum dolor sit amet, consetetur sadipscing "
HorizontalAlignment = " Center "
FontSize = " 30 " />
</ TabItem >
< TabItem Header = " ipsum " >
< TextBox Text = " Lorem ipsum dolor sit amet, consetetur sadipscing "
HorizontalAlignment = " Center "
Margin = " 5 " />
</ TabItem >
</ controlz : TabControlEx >Kelas dasar untuk membantu menggerakkan metode umum untuk membuat paket ikon di WPF.
Untuk membuat paket ikon baru, ikuti langkah -langkah ini:
Tentukan kunci (biasanya enum ):
public enum PackIconKind
{
Happy ,
Sad
} Subclass PackIconBase , menambahkan
public class PackIcon : PackIconBase < PackIconKind >
{
static PackIcon ( )
{
DefaultStyleKeyProperty . OverrideMetadata ( typeof ( PackIcon ) , new FrameworkPropertyMetadata ( typeof ( PackIcon ) ) ) ;
}
public PackIcon ( ) : base ( CreateIconData )
{ }
private static IDictionary < PackIconKind , string > CreateIconData ( )
{
return new Dictionary < PackIconKind , string >
{
{ PackIconKind . Happy , "M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5M17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8C16.3,8 17,8.7 17,9.5M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23Z" } ,
{ PackIconKind . Sad , "M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M15.5,8C16.3,8 17,8.7 17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5M12,14C13.75,14 15.29,14.72 16.19,15.81L14.77,17.23C14.32,16.5 13.25,16 12,16C10.75,16 9.68,16.5 9.23,17.23L7.81,15.81C8.71,14.72 10.25,14 12,14Z" }
} ;
}
}Berikan gaya default (biasanya di generic.xaml Anda, misalnya:
< Style TargetType = " {x:Type local:PackIcon} " >
< Setter Property = " Height " Value = " 16 " />
< Setter Property = " Width " Value = " 16 " />
< Setter Property = " HorizontalAlignment " Value = " Left " />
< Setter Property = " VerticalAlignment " Value = " Top " />
< Setter Property = " IsTabStop " Value = " False " />
< Setter Property = " Template " >
< Setter .Value>
< ControlTemplate TargetType = " {x:Type local:PackIcon} " >
< Viewbox >
< Canvas Width = " 24 " Height = " 24 " >
< Path Data = " {Binding Data, RelativeSource={RelativeSource TemplatedParent}} "
Fill = " {TemplateBinding Foreground} " />
</ Canvas >
</ Viewbox >
</ ControlTemplate >
</ Setter .Value>
</ Setter >
</ Style >Pengguna Anda sekarang harus memiliki cara sederhana untuk menggunakan paket ikon Anda dalam aplikasi mereka:
< ns : PackIcon Kind = " HappyIcon " /> CONTROLZEX menyediakan ThemeManager yang membantu Anda memberikan tema untuk aplikasi Anda.
Untuk informasi lebih lanjut, lihat bagian ini.
Lisensi MIT (MIT)
Hak Cipta (C) Sejak 2015 Jan Karger, Bastian Schmidt, James Willock
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus dimasukkan dalam semua salinan atau bagian substansial dari perangkat lunak.
Perangkat lunak ini disediakan "sebagaimana adanya", tanpa jaminan apa pun, tersurat maupun tersirat, termasuk tetapi tidak terbatas pada jaminan dapat diperjualbelikan, kebugaran untuk tujuan tertentu dan nonpringement. Dalam hal apa pun penulis atau pemegang hak cipta tidak akan bertanggung jawab atas klaim, kerusakan atau tanggung jawab lainnya, baik dalam tindakan kontrak, gugatan atau sebaliknya, timbul dari, di luar atau sehubungan dengan perangkat lunak atau penggunaan atau transaksi lain dalam perangkat lunak.