我正在尝试为组合框中的每个用户名(CreatedBy)添加一个工具提示,以防用户名对于组合框的宽度而言过长。
我知道这个问题已经被问了一百万遍了,我已经尝试过使用Style.Triggers方法,并且我也尝试过 ToolTip =“ {Binding Path = SelectedCreatedBy.ToolTip,RelativeSource = {RelativeSource Self}}
<ComboBox ItemsSource="{Binding CreatedBys.DefaultView}" SelectedValue="{Binding SelectedCreatedBy,UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="CreatedBy" DisplayMemberPath="CreatedBy" ToolTip="{Binding SelectedCreatedBy}"
Grid.Row="3" Grid.Column="12" Height="22" Width="85" FontSize="11" IsEditable="{Binding IsCreatedByEditable}" VerticalAlignment="Top" HorizontalAlignment="Left" >
编辑:我找到了解决方案,我将在此处发布代码
<ComboBox ItemsSource="{Binding CreatedBys.DefaultView}" SelectedValue="{Binding SelectedCreatedBy,UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="CreatedBy" DisplayMemberPath="CreatedBy" ToolTip="{Binding SelectedCreatedBy}"
Grid.Row="3" Grid.Column="12" Height="22" Width="85" FontSize="11" IsEditable="{Binding IsCreatedByEditable}" VerticalAlignment="Top" HorizontalAlignment="Left" >
<ComboBox.ItemContainerStyle>
<Style>
<Setter Property="Control.ToolTip" Value="{Binding CreatedBy}" />
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
答案 0 :(得分:1)
如果我理解正确,那么您希望每个组合框选项(不仅是所选的组合框)出现一个工具提示。如果是这种情况,请在您的ComboBox
内添加以下代码:
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock
Text="{Binding CreatedBy}"
ToolTip="{Binding ToolTip}"
/>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ComboBox.ItemContainerStyle>
ItemTemplate
为每个项目定义一个TextBlock
,并将一个ToolTip
绑定到您的视图模型的ToolTip
属性。 ItemContainerStyle
会拉伸ComboBoxItem
,即使鼠标不在文本上而是在项目上方,工具提示也会出现。