小编Ale*_*ker的帖子

Richtextbox wpf绑定

为了在WPF RichtextBox中对Document进行DataBinding,到目前为止,我看到了2个解决方案,它们来自RichtextBox并添加了DependencyProperty,以及带有"代理"的解决方案.第一次或第二次都不令人满意.有人知道另一个解决方案,或者是一个能够进行DataBinding的商业RTF控件吗?普通的Textbox不是替代品,因为我们需要文本格式化.

任何的想法?

data-binding wpf richtextbox

70
推荐指数
8
解决办法
10万
查看次数

通过Paginator保存和打印XPSDocument(似乎)导致内容的光栅化

我使用WPF打印路径来处理在我们的应用程序中创建的大型图表.整个图表由视觉效果组成.

一个所谓的"DesignerPaginator"对图表进行分页(非常简单).从这一点开始,我做了以下三件事: - 我用PrintDialog.PrintDocument(Paginator,Title)打印文档 - 我还用XpsDocumentWriter.Write创建了一个XPS文档(Paginator,PrintTicket); 我保存在硬盘上 - 从XPSDocument我将XpsDocumentWriter.GetFixedDocumentSequence()分配给DocumentViewer

简而言之,以下代码很重要:

PrintDialog _pdialog = new PrintDialog();
System.Printing.ValidationResult result = this.PrintQueue.MergeAndValidatePrintTicket(this.PrintQueue.UserPrintTicket, this.PrintTicket);

_pdialog.PrintTicket = result.ValidatedPrintTicket;
XpsDocument _xpsDocument = new XpsDocument("C:\\test.xps",FileAccess.ReadWrite);
XpsDocumentWriter xpsdw = XpsDocument.CreateXpsDocumentWriter(_xpsDocument);
xpsdw.Write(this.Paginator, result.ValidatedPrintTicket);
documentviewer.Document = _xpsDocument.GetFixedDocumentSequence();
_xpsDocument.Close();

_pdialog.PrintQueue = this.PrintQueue;
_pdialog.PrintDocument(this.Paginator, "Model Test");
Run Code Online (Sandbox Code Playgroud)

输出如下:

HDD上的XPS - >绝对模糊.你无法识别任何东西.它就像一个100倍变焦的GIF文件.来自DocumentViewer中XPSDocument的FixedDocumentSequence - > Perfect.这应该是XPS文件的打印输出 - >可怕,模糊,但至少比xps文件好多了

现在神秘的部分:如果我直接从DocumentViewer打印(其中FixedDocumentSequence看起来很完美),我从第一次打印得到相同的模糊输出.

我对这种情况的想法是WPF的XPS系统光栅化内容并将内容放在xps文档中作为低质量的Bitmap.它是所有向量,尽管如此,低分辨率位图的输出似乎总是很熟悉.

我将不胜感激任何帮助.我没有想法.我尝试了很多来调试这个问题,但它似乎在某种程度上同时简单而精致.

printing wpf document paginator xps

5
推荐指数
1
解决办法
2777
查看次数

使用 C# 渲染 HTML

假设我疯了,我想用 c# 实现一个基本的 HTML 渲染引擎。我想使用 WPF 控件来显示 HTML 布局。

虽然这样的想法没有任何好处,但我仍然想尝试一下!那么哪些库、项目和文档可以帮助我完成这项工作?

c# wpf html-rendering

5
推荐指数
1
解决办法
5937
查看次数

为什么在匿名类型上检索属性名称会产生以下结果?

我的一名初级同事设法编写了非常可怕,可怕的代码.

printJob.Type = item[LocalFunctions.GetName(new { printJob.Type })].ToString();

 public static string GetName<T>(T item) where T : class
    {
        try
        {
            return typeof(T).GetProperties()[0].Name;
        }
        catch (Exception ex)
        {
            return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

你猜是GetName将输出什么?它会输出"Type"!我只是不明白这是怎么回事.我的第一个想法是MS将创建一个匿名类型,其属性与值来自的属性同名(编译魔术?).由于这不可能是一个受支持的功能,我建议我的初级同事不要使用他无法理解的东西.

但这使问题悬而未决:这怎么可能?

c# reflection

2
推荐指数
1
解决办法
80
查看次数