TextControlBox.WinUI.JuliusKirsch
1.3.0
dotnet add package TextControlBox.WinUI.JuliusKirsch --version 1.3.0
NuGet\Install-Package TextControlBox.WinUI.JuliusKirsch -Version 1.3.0
<PackageReference Include="TextControlBox.WinUI.JuliusKirsch" Version="1.3.0" />
<PackageVersion Include="TextControlBox.WinUI.JuliusKirsch" Version="1.3.0" />
<PackageReference Include="TextControlBox.WinUI.JuliusKirsch" />
paket add TextControlBox.WinUI.JuliusKirsch --version 1.3.0
#r "nuget: TextControlBox.WinUI.JuliusKirsch, 1.3.0"
#:package TextControlBox.WinUI.JuliusKirsch@1.3.0
#addin nuget:?package=TextControlBox.WinUI.JuliusKirsch&version=1.3.0
#tool nuget:?package=TextControlBox.WinUI.JuliusKirsch&version=1.3.0
<div align="center"> <img src="images/Icon1.png" height="150px" width="auto"> <h1>TextControlBox-WinUI</h1> </div>
<div align="center"> <img src="https://img.shields.io/github/issues/FrozenAssassine/TextControlBox-WinUI.svg?style=flat"> <img src="https://img.shields.io/github/stars/FrozenAssassine/TextControlBox-WinUI.svg?style=flat"> <img src="https://img.shields.io/github/repo-size/FrozenAssassine/TextControlBox-WinUI?style=flat">
</div>
<br/>
๐ค What is TextControlBox?
TextControlBox is a powerful and highly customizable textbox control for WinUI 3 applications. It provides an advanced text editing experience with features like syntax highlighting for multiple programming languages, intuitive search and replace functionality, zooming, line numbering, and smooth scrolling. With support for undo/redo, customizable themes, and efficient performance.
๐ ๏ธ Features
- Basic Text Editing: Cut, copy, paste, undo, redo, and full text selection capabilities.
- Navigation & Selection:
- Go to a specific line.
- Select specific lines or the entire text.
- Scrolling & Zooming:
- Scroll to specific lines or pages.
- Zoom in and out for better readability.
- Syntax Highlighting:
- Built-in support for multiple programming languages.
- Easily toggle syntax highlighting on and off.
- Search & Replace:
- Multi highlight search
- Find and replace text with options for case sensitivity and whole-word matching.
- Customization Options:
- Show or hide line numbers.
- Customize font, theme, and cursor appearance.
- Configure spaces vs. tabs for indentation.
- Other Features:
- Drag & drop text support.
- Surround selected text with custom characters.
- Get cursor position and manage selections programmatically.
โค๏ธ Support my work
<a href='https://ko-fi.com/K3K819KSLG' target='_blank'>
<img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi6.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' />
</a>
๐๏ธ Getting Started
Installation
๐ฅ Download Nuget.org
Add TextControlBox to your WinUI 3 project and include the necessary namespace in your XAML or C# file.
using TextControlBoxNS;
Basic Usage
TextControlBox textBox = new TextControlBox();
textBox.LoadText("Hello, world!");
textBox.ShowLineNumbers = true;
textBox.EnableSyntaxHighlighting = true;
<details>
<summary><h2>๐ ๏ธ All properties and functions</h2></summary>
Text: Gets or sets the full content of the editor.SelectedText: Gets the currently selected text.CurrentSelection,CurrentSelectionOrdered: Provides selection metadata.HasSelection: Indicates if any text is currently selected.CursorPosition: Gets the current cursor position.CurrentLineIndex: Index of the line containing the cursor.NumberOfLines: Total number of lines in the editor.FontFamily: Gets or sets the font family.FontSize: Gets or sets the base font size.RenderedFontSize: Gets the final rendered font size.CornerRadius: Gets or sets the control's corner radius.RequestedTheme: Gets or sets the UI theme.Design: Gets or sets visual settings like line numbers and highlighting.ShowLineNumbers: Toggles line number visibility.ShowLineHighlighter: Toggles current line highlighting.EnableSyntaxHighlighting: Enables or disables syntax highlighting.SyntaxHighlighting: Gets or sets the current syntax highlighting language.LineEnding: Gets or sets the line ending mode.SpaceBetweenLineNumberAndText: Spacing between line numbers and text.ZoomFactor: Gets or sets the zoom factor.VerticalScroll,HorizontalScroll: Gets or sets scroll offsets.VerticalScrollSensitivity,HorizontalScrollSensitivity: Adjust scroll speed.UseSpacesInsteadTabs: Enables space-based tabulation.NumberOfSpacesForTab: Sets number of spaces per tab.SearchIsOpen: Indicates whether the search panel is open.Lines: Gets all lines as strings.DoAutoPairing: Enables auto-pairing of brackets/quotes.ControlW_SelectWord: Enables Ctrl+W to select the current word.CanDragDropText: Enables drag-and-drop support.ContextFlyout: Gets or sets the context menu flyout.ContextFlyoutDisabled: Disables the context menu.IsReadonly: Determines if the control is read-only.CursorSize: Gets or sets the cursor size.UndoRedoEnabled: Enables/disables undo/redo functionalityFocus(FocusState state): Sets focus to the control.SelectLine(int line): Selects a specific line.SelectLines(int start, int count): Selects a range of lines.GoToLine(int line): Moves the cursor to a specific line.LoadText(string text): Loads text into the control.SetText(string text): Sets the text content.LoadLines(IEnumerable<string> lines, LineEnding lineEnding = LineEnding.CRLF): Loads multiple lines.Paste(): Pastes clipboard content.Copy(): Copies the selection to clipboard.Cut(): Cuts the selected text.GetText(): Returns the current content.SetSelection(int start, int length): Selects a specific text range.SelectAll(): Selects all text.ClearSelection(): Clears any text selection.Undo(): Undoes the last action.Redo(): Redoes the last undone action.ScrollLineToCenter(int line): Scrolls a line to center.ScrollOneLineUp(),ScrollOneLineDown(): Scrolls one line vertically.ScrollLineIntoView(int line): Brings a line into view.ScrollTopIntoView(),ScrollBottomIntoView(): Scrolls to top/bottom.ScrollPageUp(),ScrollPageDown(): Scrolls a full page.ScrollIntoViewHorizontally(): Scrolls horizontally into view.GetLineText(int line): Returns the text of a line.GetLinesText(int startLine, int length): Returns a range of lines.SetLineText(int line, string text): Replaces the text of a line.DeleteLine(int line): Deletes a specific line.AddLine(int line, string text): Adds a new line at a position.SurroundSelectionWith(string text): Surrounds selection with a string.SurroundSelectionWith(string text1, string text2): Surrounds with prefix/suffix.DuplicateLine(int line): Duplicates the specified line.DuplicateCurrentLine(): Duplicates the current line.ReplaceAll(string word, string replaceWord, bool matchCase, bool wholeWord): Replaces all matches.ReplaceNext(string replaceWord): Replaces the next match.FindNext(),FindPrevious(): Navigates search results.BeginSearch(string word, bool wholeWord, bool matchCase): Starts a search.EndSearch(): Ends the search.Unload(): Unloads the control.ClearUndoRedoHistory(): Clears undo/redo history.GetCursorPosition(): Returns the cursor's screen position.SetCursorPosition(int lineNumber, int characterPos, bool scrollIntoView = true, bool autoClamp = true): Sets the cursor position.SelectSyntaxHighlightingById(SyntaxHighlightID languageId): Sets highlighting by ID.CalculateSelectionPosition(): Gets position info for selection.CharacterCount(): Returns character count.WordCount(): Returns word count.TextChanged: Event triggered when text changes.SelectionChanged: Event triggered on selection change.ZoomChanged: Event triggered when zoom changes.GotFocus,LostFocus,Loaded: Focus and lifecycle events.SyntaxHighlightings: Static dictionary of syntax languages.GetSyntaxHighlightingFromID(SyntaxHighlightID languageId): Gets highlighting language.GetSyntaxHighlightingFromJson(string json): Loads highlighting from JSON. </details>
๐ Events
TextControlBox provides several events to handle user interactions:
TextChanged: Triggered when the text content changes.SelectionChanged: Fires when the user changes the selected text.ZoomChanged: Called when the zoom factor is adjusted.GotFocus/LostFocus: Handle focus changes.
๐จ Syntax Highlighting
TextControlBox includes built-in support for multiple languages:
- C#, C++, Java, Python, JavaScript, JSON, HTML, CSS, SQL, Markdown, Batch, Config, CSV, LaTex, PHP, QSharp, TOML, XML
Enable syntax highlighting:
textBox.SelectSyntaxHighlightingById(SyntaxHighlightID.CSharp);
๐จโ๐ฉโ๐งโ๐ฆ Contributing
Contributions are welcome! Feel free to submit a pull request or open an issue.
๐งพ License
This project is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows10.0.19041 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows10.0.19041
- Collections.Pooled (>= 1.0.82)
- Microsoft.Graphics.Win2D (>= 1.3.2)
- Microsoft.Windows.SDK.BuildTools (>= 10.0.26100.4948)
- Microsoft.WindowsAppSDK (>= 1.7.250606001)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on TextControlBox.WinUI.JuliusKirsch:
| Repository | Stars |
|---|---|
|
kyoyama-kazusa/Sudoku
A sudoku solver using brute forces and logical techniques.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.0 | 160 | 8/22/2025 |
| 1.2.0 | 167 | 8/21/2025 |
| 1.1.5 | 327 | 4/16/2025 |
| 1.1.4 | 238 | 3/17/2025 |
| 1.1.3 | 173 | 3/14/2025 |
| 1.1.2 | 232 | 3/11/2025 |
| 1.1.1 | 245 | 3/3/2025 |
| 1.1.0-alpha.3 | 109 | 2/28/2025 |
| 1.1.0-alpha.2 | 119 | 2/22/2025 |
| 1.1.0-alpha | 177 | 2/10/2025 |
| 1.0.0 | 396 | 8/1/2023 |
Added undo redo grouping
Added AddLines function to add an array of lines at a specified position