Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Biçimlendirilmiş metin, köprü, resim, matematik denklemleri ve diğer zengin içerik içeren zengin metin belgelerini girmek ve düzenlemek için RichEditBox denetimi kullanabilirsiniz. IsReadOnly özelliğini true olarak ayarlayarak RichEditBox'ı salt okunur yapabilirsiniz.
Doğru kontrol bu mu?
Metin dosyalarını görüntülemek ve düzenlemek için RichEditBox kullanın. Uygulamanıza diğer standart metin giriş kutularını kullandığınız şekilde kullanıcı girişi almak için RichEditBox kullanmazsınız. Bunun yerine, uygulamanızdan ayrı metin dosyalarıyla çalışmak için bunu kullanırsınız. Genellikle RichEditBox içine girilen metni bir .rtf dosyasına kaydedersiniz.
- Çok satırlı metin kutusunun birincil amacı salt okunur belgeler (blog girdileri veya e-posta iletisinin içeriği gibi) oluşturmaksa ve bu belgeler zengin metin gerektiriyorsa, bunun yerine zengin metin bloğu kullanın.
- Yalnızca tüketilecek ve kullanıcılara gösterilmeyecek metinleri yakalarken düz metin girdi kontrolü kullanın.
- Diğer tüm senaryolar için düz metin girişi denetimi kullanın.
Doğru metin denetimini seçme hakkında daha fazla bilgi için Metin denetimleri makalesine bakın.
Recommendations
- Zengin bir metin kutusu oluşturduğunuzda, stil düğmelerini ekleyin ve bu işlemleri gerçekleştirin.
- Uygulamanızın stiliyle tutarlı bir yazı tipi kullanın.
- Metin denetiminin yüksekliğini tipik girdileri barındıracak kadar uzun yapın.
- Kullanıcılar yazarken metin girişi denetimlerinizin yüksekliğinde büyümesine izin vermeyin.
- Kullanıcıların yalnızca tek bir satıra ihtiyacı olduğunda çok satırlı metin kutusu kullanmayın.
- Düz metin denetimi yeterliyse zengin metin denetimi kullanmayın.
Örnekler
Bu zengin düzenleme kutusunda zengin bir metin belgesi açık. Biçimlendirme ve dosya düğmeleri zengin düzenleme kutusunun parçası değildir, ancak en az bir stil düğmesi kümesi sağlamalı ve eylemlerini uygulamalısınız.
Zengin düzenleme kutusu oluşturma
- Önemli API'ler:RichEditBox sınıfı, Document özelliği, IsReadOnly özelliği, IsSpellCheckEnabled özelliği
![]()
WinUI 3 Galeri uygulaması, WinUI denetimlerinin ve özelliklerinin etkileşimli örneklerini içerir. uygulamayı Microsoft Store adresinden alın veya GitHub üzerindeki kaynak koduna göz atın.
Varsayılan olarak, RichEditBox yazım denetimini destekler. Yazım denetleyicisini devre dışı bırakmak için IsSpellCheckEnabled özelliğini false olarak ayarlayın. Daha fazla bilgi için Yazım denetimi yönergeleri makalesine bakın.
İçeriğini almak için RichEditBox'ın Document özelliğini kullanırsınız. RichEditBox'ın içeriği, içeriği olarak Block nesnelerini kullanan RichTextBlock denetiminin aksine bir ITextDocument nesnesidir. ITextDocument arabirimi, belgeyi yükleyip akışa kaydetmek, metin aralıklarını almak, etkin seçimi almak, değişiklikleri geri almak ve yinelemek, varsayılan biçimlendirme özniteliklerini ayarlamak vb. için bir yol sağlar.
Bu örnekte, RichEditBox'ta Zengin Metin Biçimi (.rtf) dosyasını düzenleme, yükleme ve kaydetme gösterilmektedir.
<RelativePanel Margin="20" HorizontalAlignment="Stretch">
<RelativePanel.Resources>
<Style TargetType="AppBarButton">
<Setter Property="IsCompact" Value="True"/>
</Style>
</RelativePanel.Resources>
<AppBarButton x:Name="openFileButton" Icon="OpenFile"
Click="OpenButton_Click" ToolTipService.ToolTip="Open file"/>
<AppBarButton Icon="Save" Click="SaveButton_Click"
ToolTipService.ToolTip="Save file"
RelativePanel.RightOf="openFileButton" Margin="8,0,0,0"/>
<AppBarButton Icon="Bold" Click="BoldButton_Click" ToolTipService.ToolTip="Bold"
RelativePanel.LeftOf="italicButton" Margin="0,0,8,0"/>
<AppBarButton x:Name="italicButton" Icon="Italic" Click="ItalicButton_Click"
ToolTipService.ToolTip="Italic" RelativePanel.LeftOf="underlineButton" Margin="0,0,8,0"/>
<AppBarButton x:Name="underlineButton" Icon="Underline" Click="UnderlineButton_Click"
ToolTipService.ToolTip="Underline" RelativePanel.AlignRightWithPanel="True"/>
<RichEditBox x:Name="editor" Height="200" RelativePanel.Below="openFileButton"
RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True"/>
</RelativePanel>
private async void OpenButton_Click(object sender, RoutedEventArgs e)
{
// Open a text file.
Windows.Storage.Pickers.FileOpenPicker open =
new Windows.Storage.Pickers.FileOpenPicker();
open.SuggestedStartLocation =
Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;
open.FileTypeFilter.Add(".rtf");
Windows.Storage.StorageFile file = await open.PickSingleFileAsync();
if (file != null)
{
try
{
Windows.Storage.Streams.IRandomAccessStream randAccStream =
await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
// Load the file into the Document property of the RichEditBox.
editor.Document.LoadFromStream(Windows.UI.Text.TextSetOptions.FormatRtf, randAccStream);
}
catch (Exception)
{
ContentDialog errorDialog = new ContentDialog()
{
Title = "File open error",
Content = "Sorry, I couldn't open the file.",
PrimaryButtonText = "Ok"
};
await errorDialog.ShowAsync();
}
}
}
private async void SaveButton_Click(object sender, RoutedEventArgs e)
{
Windows.Storage.Pickers.FileSavePicker savePicker = new Windows.Storage.Pickers.FileSavePicker();
savePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;
// Dropdown of file types the user can save the file as
savePicker.FileTypeChoices.Add("Rich Text", new List<string>() { ".rtf" });
// Default file name if the user does not type one in or select a file to replace
savePicker.SuggestedFileName = "New Document";
Windows.Storage.StorageFile file = await savePicker.PickSaveFileAsync();
if (file != null)
{
// Prevent updates to the remote version of the file until we
// finish making changes and call CompleteUpdatesAsync.
Windows.Storage.CachedFileManager.DeferUpdates(file);
// write to file
Windows.Storage.Streams.IRandomAccessStream randAccStream =
await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
editor.Document.SaveToStream(Windows.UI.Text.TextGetOptions.FormatRtf, randAccStream);
// Let Windows know that we're finished changing the file so the
// other app can update the remote version of the file.
Windows.Storage.Provider.FileUpdateStatus status = await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file);
if (status != Windows.Storage.Provider.FileUpdateStatus.Complete)
{
Windows.UI.Popups.MessageDialog errorBox =
new Windows.UI.Popups.MessageDialog("File " + file.Name + " couldn't be saved.");
await errorBox.ShowAsync();
}
}
}
private void BoldButton_Click(object sender, RoutedEventArgs e)
{
Windows.UI.Text.ITextSelection selectedText = editor.Document.Selection;
if (selectedText != null)
{
Windows.UI.Text.ITextCharacterFormat charFormatting = selectedText.CharacterFormat;
charFormatting.Bold = Windows.UI.Text.FormatEffect.Toggle;
selectedText.CharacterFormat = charFormatting;
}
}
private void ItalicButton_Click(object sender, RoutedEventArgs e)
{
Windows.UI.Text.ITextSelection selectedText = editor.Document.Selection;
if (selectedText != null)
{
Windows.UI.Text.ITextCharacterFormat charFormatting = selectedText.CharacterFormat;
charFormatting.Italic = Windows.UI.Text.FormatEffect.Toggle;
selectedText.CharacterFormat = charFormatting;
}
}
private void UnderlineButton_Click(object sender, RoutedEventArgs e)
{
Windows.UI.Text.ITextSelection selectedText = editor.Document.Selection;
if (selectedText != null)
{
Windows.UI.Text.ITextCharacterFormat charFormatting = selectedText.CharacterFormat;
if (charFormatting.Underline == Windows.UI.Text.UnderlineType.None)
{
charFormatting.Underline = Windows.UI.Text.UnderlineType.Single;
}
else {
charFormatting.Underline = Windows.UI.Text.UnderlineType.None;
}
selectedText.CharacterFormat = charFormatting;
}
}
Matematik denklemleri için zengin düzenleme kutusu kullanma
RichEditBox , UnicodeMath kullanarak matematik denklemlerini görüntüleyebilir ve düzenleyebilir. Denklemler MathML 3.0 biçiminde depolanır ve alınır.
Varsayılan olarak, RichEditBox denetimi girişi matematik olarak yorumlamaz. Matematik modunu etkinleştirmek için, TextDocument özelliğinde SetMathMode'u çağırın ve RichEditMathMode.MathOnly değerini geçirin (matematik modunu devre dışı bırakmak için SetMathMode'u çağırın ancak NoMath değerini geçirin).
richEditBox.TextDocument.SetMathMode(Microsoft.UI.Text.RichEditMathMode.MathOnly);
Bu, UnicodeMath girişinin gerçek zamanlı olarak otomatik olarak tanınmasını ve MathML'ye dönüştürülmesini sağlar. Örneğin, 4^2 girildiğinde 42, 1/2 ise 1/2'ye dönüştürülür. Daha fazla örnek için bkz. WinUI 3 Galeri uygulaması .
Zengin bir düzenleme kutusunun matematik içeriğini MathML dizesi olarak kaydetmek için GetMathML'yi çağırın.
richEditBox.TextDocument.GetMathML(out String mathML);
Zengin bir düzenleme kutusunun matematik içeriğini ayarlamak için, Bir MathML dizesi geçirerek SetMathML'yi çağırın.
Metin denetiminiz için doğru klavyeyi seçin
Kullanıcıların dokunmatik klavyeyi veya Yumuşak Giriş Paneli'ni (SIP) kullanarak veri girmelerine yardımcı olmak için, metin denetiminin giriş kapsamını kullanıcının girmesi beklenen veri türüyle eşleşecek şekilde ayarlayabilirsiniz. Varsayılan klavye düzeni genellikle zengin metin belgeleriyle çalışmak için uygundur.
Giriş kapsamlarını kullanma hakkında daha fazla bilgi için bkz. Dokunmatik klavyeyi değiştirmek için giriş kapsamını kullanma.
İlgili makaleler
- Metin denetimleri
- Yazım denetimi yönergeleri
- metin girişi için Yönergeleri
- TextBox sınıfı
- PasswordBox sınıfı
Windows developer