gpt4 book ai didi

wpf - 防止 wpf 数据网格出现空工具提示

转载 作者:行者123 更新时间:2023-12-04 10:01:44 26 4
gpt4 key购买 nike

我正在开发一个日历程序,该程序主要由 WPF DataGrid 组成。 .由于并不总是有足够的空间来显示一天中的所有条目(即 DataGridCell ),因此在鼠标悬停时会出现带有当天 shell 的所有条目的工具提示。到目前为止,这适用于下面显示的代码片段。现在是(小)问题:如果一天没有条目,则不会弹出工具提示外壳。使用下面的代码会弹出一个空的工具提示。

<DataGridTemplateColumn x:Name="Entry" 
IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding EntryText}"
Foreground="{Binding EntryForeground}"
FontWeight="{Binding EntryFontWeight}">
</TextBlock>
<TextBlock Text="{Binding RightAlignedText}"
Foreground="Gray"
Background="Transparent">
<TextBlock.ToolTip>
<TextBlock Text="{Binding AllEntriesText}"/>
</TextBlock.ToolTip>
</TextBlock>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

数据绑定(bind)是通过
myCalDataGrid.Itemssource = _listOfDays; 

在后面的代码中,“Day”是单个日历行的 View 模型。

最佳答案

另一种选择是使用自己的转换器。
例如,对于显示 TextBlock 文本的 TextBlock 工具提示,我更喜欢这种方式,但在没有文本的情况下,不需要空的工具提示。

XAML 代码:

//step #1
xmlns:local="clr-namespace:MyNamespace"

//step #2 - into Window.Resources or other
<local:StringToVisibleTooltip x:Key="StringToVis" />


//step #3 - example of use
<TextBlock ...other attributes... TextTrimming="CharacterEllipsis">
<TextBlock.ToolTip>
<ToolTip Visibility="{Binding Path=Text, Converter={StaticResource StringToVis}}">
<TextBlock Text="{Binding Text}"/>
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>

和后面的代码
  namespace MyNamespace
{
public class StringToVisibleTooltip : IValueConverter
{

public StringToVisibleTooltip() { }

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null && ((string)value).Length > 0) //empty string does not need tooltip
return Visibility.Visible;
else
return Visibility.Collapsed;
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
}

关于wpf - 防止 wpf 数据网格出现空工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com