我有一个托管RichTextBox的小型WPF应用程序:
<RichTextBox SpellCheck.IsEnabled="True"
FontFamily="Verdana"
AcceptsTab="True"
AcceptsReturn="True"
FontSize="14" />
Run Code Online (Sandbox Code Playgroud)
如上面的代码片段所示,我将字体大小设置为14.如果我将此RichTextBox中的文本复制到Microsoft Word或Microsoft WordPad,则报告字体大小为10.5.如果我从Word或写字板粘贴文本,则类似的怪异仍然存在.我已经确认从我的应用程序中选择的文本大小为14.任何帮助将不胜感激!
我正在尝试生成BitmapFrame基于UIElement. 这是我的功能:
private BitmapFrame RenderToBitmap2()
{
RenderTargetBitmap renderBitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Pbgra32);
DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
VisualBrush aVisualBrush = new VisualBrush(GenerateTestStackPanel());
drawingContext.DrawRectangle(aVisualBrush, new Pen(Brushes.Green, 2), new Rect(new Size(150, 150)));
drawingContext.Close();
renderBitmap.Render(drawingVisual);
return BitmapFrame.Create(renderBitmap);
}
Run Code Online (Sandbox Code Playgroud)
出于测试和调试目的,我使用了一个附加函数来创建一个简单的 StackFrame,它应该创建一个可以表示的有效视觉元素:
private StackPanel GenerateTestStackPanel()
{
// Create a red Ellipse.
Ellipse myEllipse = new Ellipse();
myEllipse.Fill = Brushes.Green;
myEllipse.StrokeThickness = 2;
myEllipse.Stroke = Brushes.Black;
// Set the width and height of …Run Code Online (Sandbox Code Playgroud) 也许我遗漏了扩展方法的概念,但我无法访问KeyCollection类中的扩展方法,如下所示:http://msdn.microsoft.com/en-us/library/dk7e2d8e.aspx.
使用以下代码摘录:
Dictionary<int, int> foo = new Dictionary<int,int>();
foo.Add(1,1);
Dictionary<int, int>.KeyCollection kc = foo.Keys;
Run Code Online (Sandbox Code Playgroud)
我只能访问"标准"KeyCollection方法(CopyTo,Equals,Finalize等),但无法访问扩展方法(Aggregate,All,Any等).
任何帮助将不胜感激!谢谢!