我的复选框没有复选标记。如果我仅使用一个复选框(实例对象)进行渲染,则可以显示复选标记,但我无法使用此解决方案。我需要能够使用本地复选框来呈现它。这个复选框通过“/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml”应用了Aero主题,这对我来说也是必须的。其他主题内置的主题,如皇家和月神呈现与复选标记。如何将选中的CheckBox(Aero主题)渲染为RenderTargetBitmap?
XAML
<Canvas Name="canvas">
<Button Click="Button_Click" Canvas.Left="440" Canvas.Top="277">
Do Paint
</Button>
<Image Name="image"/>
</Canvas>
C#
private void Button_Click(object sender, RoutedEventArgs e) {
var checkBox = new CheckBox { Width = 100, Height = 30, IsChecked = true, };
var rectangle = new Rect(0, 0, checkBox.Width, checkBox.Height);
//need this
var visualBrush = new VisualBrush(checkBox);
checkBox.Arrange(rectangle);
var renderTargetBitmap = new RenderTargetBitmap((int)rectangle.Width, (int)rectangle.Height, 96, 96, PixelFormats.Default);
renderTargetBitmap.Render(checkBox);
renderTargetBitmap.Freeze();
image.Source = renderTargetBitmap;
}
您的解决方案没有解决我的问题,但给了我一个解释,为什么WPF的行为就像它有关CheckBox控件...谢谢 – reSPAWNed 2011-08-04 12:32:54