我正在尝试将PlayerFramework.MediaPlayer.CanPause属性绑定到我的windows 10通用应用程序中的按钮。这使用默认字体,但是当我切换到Segoe MDL2以获得那些漂亮的图标时,按钮会显示垃圾。
<mmppf:MediaPlayer x:Name="mediaElement">
...
<Button Name="btnPlay"
Style="{StaticResource transportStyle}" Content="{Binding CanPause, ElementName=mediaElement, Converter={StaticResource CanPauseToPlayPauseConverter}}"/>这是来自转换器的:
public object Convert(object value, Type targetType, object parameter, string language)
{
bool canPause = (bool)value;
if (canPause)
return @"";
// "play"
return "";
}从按钮样式...and这一点:
<Style x:Name="transportStyle" TargetType="Button">
<!-- <Setter Property="FontFamily" Value="Segoe MDL2 Assets" />-->
</Style>禁用Setter属性后,按钮显示期望值
它直接设置为按钮内容,显示播放符号。
知道为什么这不管用吗?
编辑:从字符表复制字符并返回它是有效的。
发布于 2015-08-26 08:00:13
是XML中的unicode字符转义序列(因此在XAML中也是如此)。在C#中,它被写成\uE102。
因此,转换器应该返回具有正确的C# unicode字符转义序列的字符串(或字符):
public object Convert(object value, Type targetType, object parameter, string language)
{
return (bool)value ? "\uE769" : "\uE102";
}发布于 2015-08-26 04:01:37
您必须返回一个字符,而不是字符串:
public object Convert(object value, Type targetType, object parameter, string language)
{
bool canPause = (bool)value;
if (canPause)
return '\xE769';
// "play"
return '\xE102';
}https://stackoverflow.com/questions/32217622
复制相似问题