我想在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。这使我可以灵活地同时使用TextSymbols,而又不会在代码/图像上花太多的力气。我会说,SUS具有出色的现代图标(或字符,如果可以称呼它们),非常具有Metroish感。

只需打开Charmap(Win + R,然后输入charmap)并在“字体选择”->“ Segoe UI符号”中。现在,您可以选择任何喜欢的字符并将其粘贴到Visual Studio编辑器本身中。是的,它有效!
该符号可能无法在编辑器中正确显示,但会显示在Runtime

这里有一些建议:


以下是相应的字符:








不必担心他们在这里看起来不正确。当您按照上述步骤操作时,他们应该。

关于c# - 将复选框渲染到图像以用于平铺,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25877476/

10-13 07:45