[英]display tooltip when text exceeds max width in the textbox
我具有以下文本框控件,如果文本框中的文本超過最大寬度,則我們應該顯示工具提示。
<TextBox Name="ClientAgreementNumberHCCText"
TextAlignment="Left"
TextWrapping="NoWrap"
Text=" {Binding Text,Mode=OneWay}"/>
請注意,我不想使用文本框的環繞。 我怎樣才能做到這一點?
可以通過手動測量具有最大大小的文本框,然后將“所需大小”與“實際大小”進行比較來實現。 我在TextBox的textChanged事件中添加了以下代碼,並且工作正常。
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
textBox.Measure(new Size(Double.MaxValue, Double.MaxValue));
var width = textBox.DesiredSize.Width;
if (textBox.ActualWidth < width)
{
ToolTipService.SetToolTip(textBox, textBox.Text);
}
else
{
ToolTipService.SetToolTip(textBox, null);
}
}
我認為您想使用TextBox.GetRectFromCharacterIndex ,它將為您提供Rect ,其中width是文本的寬度。
只要綁定的文本發生更改,您就可以計算矩形並動態獲取寬度。 您可以將寬度與TextBox的寬度進行比較,查看文本是否過長,並根據該文本設置工具提示。 (考慮是否只需要寬度,或者還需要考慮填充和邊距)
這是我的資料來源: http : //dedjo.blogspot.de/2007/03/text-length-measurement-it-really-easy.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.