我正在尝试将StackPanel
放入ModernButton
。这是XAML:
<mui:ModernButton Margin="0,50"
IconHeight="10"
IconWidth="10"
Background="#FF68217A"
HorizontalAlignment="Center"
Foreground="Black">
<StackPanel>
<TextBlock>George</TextBlock>
<TextBlock>Washington</TextBlock>
</StackPanel>
当我把它放到位时,我会看到按钮上显示“System.Windows.Controls.Stackpanel”。我不明白为什么。 ModernButton
是WPF Button
类的子级,如果替换mui:ModernButton
,则可以正常工作。 (当然你必须摆脱IconHeight和IconWidth,但重点是它有效。)
那么为什么我的控件不能在ModernButton
内正确呈现?
答案 0 :(得分:0)
问题是ModernButton只是一个模糊不清的控件。我会向MUI project提交一个新问题。无论如何,证明是here,除了显示文本之外,模板不会让你受益匪浅。您要做的是编辑ModernButton
的模板。右键单击XAML设计器中的ModernButton
&gt;编辑模板&gt;编辑副本...&gt;好的&gt;转到XAML视图。在那里你会想要做类似的事情:
<Grid Grid.Column="1" >
<!-- <TextBlock DataContext="{TemplateBinding Content}"
Visibility="{Binding Converter={StaticResource NullOrEmptyStringToVisibilityConverter}, ConverterParameter=inverse}"
Text="{Binding Converter={StaticResource ToLowerConverter}}"
TextTrimming="CharacterEllipsis"
Foreground="{TemplateBinding Foreground}"
Margin="4,-1,0,0"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> -->
<ContentPresenter Focusable="False"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Grid>
简而言之,您将TextBlock
替换为ContentPresenter
,然后您就可以在按钮上显示任何内容。