我想在Windows Phone应用程序的图块上显示一个或多个复选框。这已经适用于TextBlocks,但是使用CheckBox时,它仅显示CheckBox的文本,而不显示Checkmark本身。
这是我的代码的示例:
public void CreateTile()
{
StackPanel panel = new StackPanel();
panel.VerticalAlignment = VerticalAlignment.Top;
panel.Margin = new Thickness(7.0, 7.0, 7.0, 0);
panel.Width = 336;
panel.Height = 336;
panel.Orientation = Orientation.Vertical;
// Create and add a CheckBox for each task
foreach (var task in _tasks)
{
TextBlock textBlock = new TextBlock();
textBlock.TextWrapping = TextWrapping.Wrap;
textBlock.Style = App.Current.Resources["PhoneTextLargeStyle"] as Style;
textBlock.Foreground = new SolidColorBrush(Colors.White);
textBlock.Text = task.Text;
CheckBox checkBox = new CheckBox();
checkBox.IsChecked = task.IsDone;
checkBox.Content = textBlock;
panel.Children.Add(checkBox);
}
Grid layoutRoot = new Grid();
layoutRoot.Background = new SolidColorBrush(Colors.Blue);
layoutRoot.Width = 336;
layoutRoot.Height = 336;
layoutRoot.Children.Add(panel);
layoutRoot.Measure(new Size(336, 336));
layoutRoot.Arrange(new Rect(0, 0, 336, 336));
layoutRoot.UpdateLayout();
// Render grid into bitmap
WriteableBitmap bitmap = new WriteableBitmap(336, 336);
bitmap.Render(layoutRoot, null);
bitmap.Invalidate();
// Save background image for tile to isolated storage
Uri backgroundImage = TileHelper.SaveTileImage(bitmap);
}
如果使用上面方法创建的背景图像创建图块,则图块将如下所示:
如您所见,显示了文本,但文本前没有复选标记/正方形。
最佳答案
我个人喜欢在这种情况下使用Segoe UI Symbol作为Font Family
。这使我可以灵活地同时使用Text
和Symbols
,而又不会在代码/图像上花太多的力气。我会说,SUS具有出色的现代图标(或字符,如果可以称呼它们),非常具有Metroish感。
只需打开Charmap(Win + R,然后输入charmap
)并在“字体选择”->“ Segoe UI符号”中。现在,您可以选择任何喜欢的字符并将其粘贴到Visual Studio编辑器本身中。是的,它有效!
该符号可能无法在编辑器中正确显示,但会显示在Runtime
这里有一些建议:
以下是相应的字符:
☑
✅
不必担心他们在这里看起来不正确。当您按照上述步骤操作时,他们应该。
关于c# - 将复选框渲染到图像以用于平铺,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25877476/