Tag: 渲染

如何使用字符串可以转换UserControl

有没有什么方法/可能性我可以用UserControl替换字符串? 除了LoadControl并将其添加到另一个控件,如页面或占位符。 原因是用户在页面上添加内容并输入类似{uc:test}的字符串,我想解析此文本并用UserControl替换{uc:test}。 换一种说法 ; 用户输入将是“bla bla bla {uc:test} bla bla”,当我从数据库中检索它时如何注入usercontrol并将其替换为{uc:test} 谢谢。

在wpf c#中重新排列wrappanel内的CustomControl

我在一个wrappanel中动态创建一个customcontrol。 现在我需要重新排序wrappanel内的自定义控件。 是否可以使用拖放重新排列wrappanel内的自定义控件? 这是我的XAML代码 我已经尝试将包装面板放在列表中,因为它是由给定答案(Ilan的答案)建议的,现在我的面板无法在后面的代码中访问。 我做错了什么?

覆盖Render方法的问题

我想序列化Web表单的所有输出(从.NET 3.5上的aspx和aspx.cs)到JSON。 所以,这是我的代码: protected string myText; protected void Page_Load(object sender, EventArgs e) { myText = “This is my whole codeA link”; } protected internal override void Render(HtmlTextWriter writer) { var serializer = new JavaScriptSerializer(); Response.Write(Request[“callback”] + serializer.Serialize(writer.ToString())); } 但我得到这个错误: CS0507: ‘moduli_Prova.Render(System.Web.UI.HtmlTextWriter)’: cannot change access modifiers when overriding ‘protected’ inherited member ‘System.Web.UI.Control.Render(System.Web.UI.HtmlTextWriter)’ 我哪里错了? 这是正确的方法吗?

如何知道WPF中何时渲染(绘制)控件(或窗口)?

我需要将Window的内容存储到图像中,保存并关闭窗口。 如果我在Loaded事件上关闭窗口,图像包含窗口,其中一些项目被绘制好,其他一些只是一半绘制或扭曲而其他项目不在图像上。 如果我放一个计时器并在一定时间后关闭窗口(根据窗口的复杂程度,在250毫秒和1秒之间),图像都可以。 看起来窗口需要一些时间来完全渲染自己。 有没有办法知道何时完成此渲染以避免使用Timer并在我们知道它已完成渲染时关闭窗口? 谢谢。

如何在WPF中创建渲染循环?

如何在WPF中消息循环空闲时创建一个连续执行的循环? 这里的目标是执行一些长时间运行的图形更新,例如刷新PicktureBox ,它能够消耗任何可用的免费资源,但不应该冻结UI或以其他方式优先于消息队列中的任何其他操作。 我注意到这篇博客文章提供了在winforms应用程序中执行此操作的代码,但我不知道如何将其转换为WPF应用程序。 下面是我根据另一篇文章制作的WinForms渲染循环类的代码: using System; using System.Runtime.InteropServices; using System.Threading; using System.Windows.Forms; namespace Utilities.UI { /// /// WinFormsAppIdleHandler implements a WinForms Render Loop (max FPS possible). /// Reference: http://blogs.msdn.com/b/tmiller/archive/2005/05/05/415008.aspx /// public sealed class WinFormsAppIdleHandler { private readonly object _completedEventLock = new object(); private event EventHandler _applicationLoopDoWork; //PRIVATE Constructor private WinFormsAppIdleHandler() { Enabled = false; […]

字体渲染与字形信息

我调用“GetCharABCWidthsFloatW”来获取字符的宽度信息。 有了这个,我将获得左侧轴承,右侧轴承和先进的宽度。 为了定位每个字符,我将从一个从零开始的“xPlacement”变量开始。 我将首先通过减去“左侧轴承”来调整xPlacement变量。 绘制完角色后,我会按角色的宽度前进(我稍后会显示计算结果)。 然后,我将通过添加当前“xPlacement”中的“右侧方位”信息来移动xPlacement变量。 在我看来,这应该是字符放置的代码,对吗? 重要的是纠正字符的宽度。 宽度将通过采用advancedWidth,左侧轴承的POSITIVE版本和右侧轴承的POSITIVE版本来计算。 我会将这些值转换为正数,如果它们是负数,那么我可以得到该字符的总宽度。 这是一些关于如何生成的伪代码。 float xPlacement = 0.0f; for(int i = 0; i < strlen(text); ++i) { char charValue = text[i]; GetCharWidthABC(.., .., charInfo); float posLeft = charInfo.leftSideBearing; if(charInfo.leftSideBearing < 0) posLeft = -charInfo.leftSideBearing; float posRight = charInfo.rightSideBearing; if(posRight < 0) posRight = -charInfo.rightSideBearing; float posWidth = posRight […]

ASP.NET引号字符编码在设置控件的属性时会导致问题

我有一个ASP.NET Web应用程序,在某些时候我这样做: mycontrol.stringparameterforjscript = “document.getElementById(‘” + myotherparam + “‘).value = ‘Hello'”; 问题是这件事不起作用。 正如您所看到的,这在某些标签的某些事件中设置了javascript。 当页面被重新编译时,问题是我的参数看起来像这样: 我必须确切地说,我正在尝试设置的这个文本框位于ListView的InsertItemTemplate中,并且初始化并不容易。 出于这个原因,我插入了我在文本框的load事件处理程序中看到的初始化代码。 我可以说一件事:如果这段代码引用了一个位于页面中的文本框,我从页面的load事件处理程序中调用了这段代码,这样就可以了。 但我不知道在这种特殊情况下该怎么做。 我也在考虑创建一个webcantrol来处理这个问题的可能性。 我真的不知道在这种情况下最好的做法是什么。

如何使用InvariantCulture仅渲染某些特定的模型字段,而其余的则继续使用用户文化?

我在asp.net mvc视图上有几个隐藏的输入。 它们的值包含double类型的对象。 我希望它们使用InvariantCulture进行渲染,因为它们习惯于被提供给客户端上的api(谷歌地图)。 就像现在一样,它们使用逗号(,)作为小数分隔符进行渲染,而api则需要一个点(。)作为小数分隔符。 最好的解决方案是,如果我可以在模型的属性上的DisplayFormat数据注释属性中指定文化,但我不认为这是可能的: public class Position { [DisplayFormat(DataFormatString=”{0:G}, CultureInfo.InvariantCulture”)] public double Latitude; … } 我不能在我的Application_Start方法中将CurrentCulture设置为InvariantCulture ,因为屏幕上还有其他值必须在适当的用户文化中。 那么,有没有办法暂时改变当前的文化,就在我为该特定属性执行Html.HiddenFor(Model => Model.Latitude)之前,然后重置它? 或者还有另一种更好的方法吗? 什么是最佳做法?

如何在输出之前修改整个ASP.NET页面内容?

我有一个页面上有一堆用户控件。 我希望能够在我的代码中替换的内容中直接使用“宏”或“占位符”。 这应该不重要,但我使用Ektron作为我的CMS。 是否有任何页面事件可以挂钩到整个呈现的页面内容上进行字符串替换,就在它被发送到客户端之前? UPDATE 这是我目前用来完成此任务的代码: protected override void Render(HtmlTextWriter writer) { string content = string.Empty; using (var stringWriter = new StringWriter()) using (var htmlWriter = new HtmlTextWriter(stringWriter)) { // render the current page content to our temp writer base.Render(htmlWriter); htmlWriter.Close(); // get the content content = stringWriter.ToString(); } // replace our placeholders string newContent […]

如何从字符串动态呈现asp.net控件?

假设我有一个字符串,我从DB中检索到: “Lorem ipsum dolor sit amet,consetetur sadipscing elitr,sed diam nonumy eirmod tempor invidunt ut labore et {{Hyperlink | navigateurl =’/ foo.aspx’}} dolore magna aliquyam。” 现在可以将此字符串分配给标签的Text-property。 我想要的是解析{{Hyperlink | navigateurl =’/ foo.aspx’}}并将其替换为 并将包括HyperLink-Control在内的整个文本分配给Label。 这有可能吗? 我想我可以使用reflection来创建控件并设置属性。 (HyperLink-Control只是一个例子)但是我可以设法将asp.net控件插回到字符串中以确保将超链接呈现为服务器控制吗? 我希望你明白我的意思。 如果没有,请随时发表评论。 EDIT1: 你是什​​么意思“将整个文本包括HyperLink-Control分配给标签。”? 你可以解释一下,这样做的原因是什么? 我认为将控件分配给字符串是行不通的,因为asp.net控件不能适应字符串。 经过一番思考后,我找到了实现目标的方法。 那就是创建一个占位符(我将其命名为A)。 其中将添加一些Literal控件。 另外我会创建一个占位符(我将其命名为B),将我的超链接添加到B中,并将A添加到B中。但我认为这是过度杀伤的方法。 我开始考虑这个问题的原因是为了获得对Server.MapPath的访问而不替换字符串中的出现。 我希望能够在我的CMS中使用相对路径,它从超链接呈现为NavigateUrl属性。 尽管如此,我认为我对动态创建的问题值得考虑