gpt4 book ai didi

wpf - FontSize 未在 Contentpresenter 和 ContentControl 中继承的解决方法

转载 作者:行者123 更新时间:2023-12-04 21:26:24 25 4
gpt4 key购买 nike

试图使 UserControl 可以承载其他控件。以下是相关代码。

<UserControl … … … … >
<Grid DataContext="{Binding RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType={x:Type UserControl}}}">
… … …
<ContentPresenter Content="{Binding SomeContent}"/>
… … …
</Grid>
</UserControl>

并使用此 UserControl 如下 -
<myCtrl:ContainerUserControl FontSize="18pt">
<myCtrl:ContainerUserControl.SomeContent>
<Grid>
<TextBox Text="Hello World"/>
</Grid>
</myCtrl:ContainerUserControl.SomeContent>
</myCtrl:ContainerUserControl >

问题是 FontSize 没有继承到 TextBox。我可以将 FontSize 设置为 TextBox 但这不是一个优雅的解决方案。我试过使用 ContentControl 但没有改变。也尝试使用
<ContentPresenter TextElement.FontSize="{Binding FontSize}" Content="{Binding SomeContent}"/>

也不行。 FontSize 并不是我唯一担心的事情。我可能还需要其他属性来继承。

可以做些什么来解决这个问题?

最佳答案

给定的 xaml 应该可以正常工作。您可能在某处设置了字体大小的默认 TextBox 样式。见 Dependency Property Value Precedence - 本地值优先于样式 setter (因此在 TextBox 上设置字体大小直接有效),而样式 setter 优先于“继承”值(这就是为什么在 UserControl 或 ContentPresenter 上设置字体大小不起作用 - 假设这里确实有一种默认样式在起作用)。

关于wpf - FontSize 未在 Contentpresenter 和 ContentControl 中继承的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33658362/

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