New method to add token to RichSuggestBox
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Bắt đầu từ RichSuggestBox và lần theo đường dẫn AddTokens hiện có, bao gồm cách lựa chọn văn bản và dữ liệu token được cập nhật. Xác định hành vi của phương thức mới dựa trên hành vi mong đợi: phương thức này phải chèn một token được hiển thị cùng dữ liệu liên kết tại lựa chọn hiện tại, với token thu được có thể được truy cập thông qua trạng thái token hiện có của control.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
As mentioned on Discord, I would really love a new method on RichSuggestBox that allows the programmatic insertion of a new token.
The use-case for this is something like a toolbar that offers ways to insert tokens. Currently you need to type the prefix, and then use the provided suggestions.
I think it is quite a common case that you want to offer suggestions outside of the provided popup. In the sample people get suggested to at-mention when the user types @. But imagine if I want to have a custom menu that enables the user to at-mention the last couple of people they interacted with. This new method would make that quite easy to implement.
Steps to reproduce
Currently I create the token in a manual way that relies a bit too much on the inner workings of RichSuggestBox:
private void AddToken(string displayText, object? tokenData)
{
var guid = Guid.NewGuid();
if (mySuggestBox.TextDocument is not null)
{
mySuggestBox.AddTokens([new(guid, $"({displayText})") { Item = tokenData }]);
mySuggestBox.TextDocument.Selection.SetText(Microsoft.UI.Text.TextSetOptions.Unhide, $"\u200B({displayText})\u200B");
mySuggestBox.TextDocument.Selection.Link = $"\"{guid}\"";
// I move the focus, but probably not needed in the toolkit:
mySuggestBox.Focus(FocusState.Programmatic);
mySuggestBox.TextDocument.Selection.MoveStart(Microsoft.UI.Text.TextRangeUnit.Story, 1);
// note: the new Token is not available in `Tokens` here yet, some processing occurs.
// It seems like the private method `ValidateTokensInDocument()` should be called here.
}
}
Expected behavior
The new method should add a token, allow me to set the displayed text and the associated data. The token should be inserted at the current text selection/position (In my experience the current position is at the end of the document if the user hasn't interacted with the content)
Screenshots
See the discord for a video of my current use-case
Code Platform
- UWP
- WinAppSDK / WinUI 3
- Web Assembly (WASM)
- Android
- iOS
- MacOS
- Linux / GTK
Windows Build Number
- Windows 10 1809 (Build 17763)
- Windows 10 1903 (Build 18362)
- Windows 10 1909 (Build 18363)
- Windows 10 2004 (Build 19041)
- Windows 10 20H2 (Build 19042)
- Windows 10 21H1 (Build 19043)
- Windows 10 21H2 (Build 19044)
- Windows 10 22H2 (Build 19045)
- Windows 11 21H2 (Build 22000)
- Other (specify)
Other Windows Build number
No response
App minimum and target SDK version
- Windows 10, version 1809 (Build 17763)
- Windows 10, version 1903 (Build 18362)
- Windows 10, version 1909 (Build 18363)
- Windows 10, version 2004 (Build 19041)
- Windows 10, version 2104 (Build 20348)
- Windows 11, version 22H2 (Build 22000)
- Other (specify)
Other SDK version
No response
Visual Studio Version
2022
Visual Studio Build Number
latest (17.14.9)
Device form factor
Desktop
Additional context
I find the tokenized richtextbox a very cool and powerful control, the use-case in the samples centered on suggestions are just the tip of the ice berg.
I did not really look into this yet, but I believe a token must currently start with a punctuation character. But wouldn't it be neat if you could use an emoji? Imagine a paperclip with a document name to reference an attachment. 📎MyReport.pdf
Help us help you
No, I'm unable to contribute a solution.
- Ngôn ngữ chính
- C#
- Star
- 1.1k
- Fork
- 167
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của CommunityToolkit/Windows
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
CommunityToolkit/Windows#869 · 2 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 62/100
CommunityToolkit/Windows#867 · 4 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
CommunityToolkit/Windows#863 · 11 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 62/100
CommunityToolkit/Windows#860 · 2 bình luận ·
-
[SettingsCard] Change ActionIcon to utilize IconSource and IconSourceElementCó thể làm lại được @Avid29 đã nhận 123 ngày trước và không có pull request nào đang mở. Đang mởcomponents::controls::settingscontrols
CommunityToolkit/Windows#858 · 4 bình luận · 1 người được giao ·
Tất cả issue của CommunityToolkit/Windows
Issue tương tự
-
[C#]:主页联网更新的提示投稿横幅指向错误Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
PCL-Community/PCL-CE#3652 ·
Maintainer thường phản hồi trong vòng 1 ngày