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

Wpf 在Contentpresenter和ContentControl中未继承FontSize的解决方法,wpf,xaml,Wpf,Xaml,尝试创建可以承载其他控件的UserControl。以下是相关代码 <UserControl … … … … > <Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"> … … … <ContentPresenter Content="{Bin

尝试创建可以承载其他控件的UserControl。以下是相关代码

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

… … …
… … …
并使用此用户控件,如下所示-

<myCtrl:ContainerUserControl FontSize="18pt">
    <myCtrl:ContainerUserControl.SomeContent>
        <Grid>
            <TextBox Text="Hello World"/>
        </Grid>
    </myCtrl:ContainerUserControl.SomeContent>
</myCtrl:ContainerUserControl >

问题是FontSize没有继承到TextBox。我可以将FontSize设置为文本框,但这不是一个优雅的解决方案。我尝试过使用ContentControl,但没有改变。也试着用

<ContentPresenter TextElement.FontSize="{Binding FontSize}" Content="{Binding SomeContent}"/>

也不管用。我担心的不仅仅是尺寸。我可能还需要其他可继承的属性


如何解决这个问题?

给定的xaml应该可以正常工作。您可能有一个默认的文本框样式来设置字体大小。请参阅-本地值优先于样式设置器(因此直接在文本框上设置字体大小是有效的),而样式设置器优先于“继承”值(这就是为什么在UserControl或ContentPresenter上设置字体大小不起作用的原因-假设这里确实存在默认样式).

给定的xaml应该可以正常工作。您可能有一个默认的
文本框
样式来设置字体大小。请参阅-局部值优先于样式设置器(因此在
文本框上设置字体大小直接起作用),而样式设置器优先于“继承”值(这就是为什么在
UserControl
ContentPresenter
上设置字体大小不起作用-假设这里确实存在默认样式)。@PieterWitvoet谢谢。你是对的。问题是由于Mahapps.Metro默认控件样式。你能将信息作为答案发布,以便我可以接受吗。