gpt4 book ai didi

c# - ContentControl 换行问题

转载 作者:行者123 更新时间:2023-12-02 00:01:11 25 4
gpt4 key购买 nike

我正在尝试创建自定义工具提示控件。该控件继承自ToolTip类。我的自定义工具提示将有一个标题和一个内容区域。内容可以是普通文本或任何其他内容(图像、richtextbox 等)。以下是自定义工具提示控制的模板样式。

    <Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type customControls:FlyoutHelp}">
<Border BorderThickness="0" Margin="15" Width="300">
<Border.Effect>
<DropShadowEffect Opacity="0.7" />
</Border.Effect>
<StackPanel TextBlock.FontFamily="Trebuchet MS" TextBlock.FontSize='12'>
<TextBlock Background="{StaticResource DellBlue}" Height="23" Foreground="#FFFFFF" Padding="0,4,0,0" TextAlignment="Center" Text="{Binding HeaderText, RelativeSource={RelativeSource Mode=TemplatedParent}}" />
<Border Background="{StaticResource DellLightGrey}" TextBlock.Foreground="{StaticResource DarkestGrey}" Padding="8">
<ContentControl Content="{Binding HelpContent, RelativeSource={RelativeSource Mode=TemplatedParent}}" />
</Border>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>

现在,正如您在我的模板中看到的那样,我正在使用 ContentControl 来显示工具提示的内容。问题是当我的 HelpContent 只是纯字符串时,它不会换行该文本。我无法用 TextBlock 替换 ContentControl,因为 HelpContent 也可能是其他类型(图像、richtextbox 等)。谁能告诉我解决这个问题的最佳方法是什么?我真的会非常感激。

最佳答案

ContentControl 标记替换为:

<ContentPresenter Content="{TemplateBinding HelpContent}">
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="Wrap"/>
</Style>
</ContentPresenter.Resources>
</ContentPresenter>

[注意:您可以将其保留为 ContentControl,但 ContentPresenter 更轻且遵循约定]

关于c# - ContentControl 换行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23133570/

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