我有一个WPF应用程序,它通过套接字连接到设备并获取流文本数据(每秒大约1条消息).然后,此数据将显示在UI上.用户可以创建规则,如"如果数据包含'abc'突出显示行"或"...使其变为粗体",那么纯文本输出将不会执行,它需要是"丰富"文本.
我目前的解决方案是在我的ViewModel中包含一个包含格式化输出的FlowDocument.View有一个FlowDocumentScrollViewer,它绑定到ViewModel中的FlowDocument.
这很有效,但是当FlowDocument变大(~6,000行)时,性能开始下降.当前算法将行数限制为10,000,但事情变得更糟,直到应用程序无法使用.一旦达到10,000行,然后我为每一行添加一行,导致FlowDocumentScrollViewer获得每个新行的2个更新通知.
我试图找到批量删除的方法(当我们达到10,000行删除最旧的1,000行时),但FlowDocument上没有批量删除.循环1,000次并执行删除会导致1,000个更新通知并锁定UI.
这是我的问题,这是我的问题:
使用WPF显示流式富文本内容的最佳方法是什么? 我每秒收到~1条消息,每条消息大约150个字符,我想保留最后10000条消息.我是以错误的方式来做这件事的吗?是否有其他控制/对象表现更好?
编辑:这里有一些更多的要求
我有一个具有某种元表类型的Lua userdata对象(例如"stackoverflow.test").从C代码,我希望能够确切地检查它是什么类型,并根据结果表现不同.是否有一个非常方便的功能(相当像luaL_checkudata,但如果答案不是你想要的,没有错误)让我查询userdata的metatable类型名称?如果没有,我想我需要使用lua_getmetatable,但是我有点不清楚我如何确定刚刚添加到堆栈中的metatable的名称.
只是为了澄清:我正在使用Lua 5.1,其中luaL_checkudata的行为被改变了.据我所知,在5.0中它并不习惯错误.
我希望我的Silverlight应用程序填满整个浏览器窗口.我已将插件对象的宽度和高度设置为100%,并将我的LayoutRoot容器的高度和宽度设置为自动,但仍然没有运气.有什么建议?
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Silverlight ID="Silverlight1" runat="server"
Source="~/ClientBin/Client.xap"
MinimumVersion="2.0.30818.0"
AutoUpgrade="true"
Height="100%"
Width="100%">
</asp:Silverlight>
</form>
<UserControl
x:Class="Client.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="Auto"
Width="Auto">
<Grid
x:Name="LayoutRoot"
Background="#084E85"
ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="280" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="80" />
<RowDefinition Height="Auto" />
<RowDefinition Height="600" />
</Grid.RowDefinitions>
...Remaining content here...
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
免责声明:我首先搜索了一个答案,找到了这个帖子.但是,您可以通过我的代码看到这对我不起作用.
在Sql Server 2005触发器中是否有一种方法可以获取触发器在执行期间附加到的表的名称和模式?
在大多数JSON序列化器/反序列化器中,javascript字典/散列数组中的"关键"部分被写为字符串.
使用字符串作为键而不是只键入目标名称有什么好处?
例如,假设我定义了两个对象k1,k2如下所示:
var k1 = { a: 1, b: 2, c: 3 }; // define name normally
var k2 = { "a": 1, "b": 2, "c": 3 }; // define name with a string
Run Code Online (Sandbox Code Playgroud)
然后我运行了以下测试:
alert(k1 == k2); // false (of course)
alert(k1.a == k2.a); // true
alert(k1["b"] == k2["b"]); // true
alert(uneval(k1)); // returns the k1 object literal notation.
alert(uneval(k2)); // returns the same string as above line.
alert(uneval(k1) == uneval(k2)); // true
Run Code Online (Sandbox Code Playgroud)
那么关键是用双引号(一个字符串)来 …
我在SO上看到了关于无法使用无参数构造函数或不设置字段初始化器的不同问题,但我认为我的问题远远超出了这一点.
我想知道的是,我将如何设置我需要定义的结构的"默认"值?假设我正在制作TaxID结构,无论出于何种原因,默认值都必须为999-99-9999.这已经在.NET中的其他结构中完成,即DateTime.每当您声明DateTime时,该值立即设置为Jan 1 0001 12:00 AM.为什么它设置为此值而不是0/0/0000 00:00:0000 AM?必须在幕后发生一些事情,使得该值实际上在其"默认"处"有意义",即使考虑到结构对c#的限制.
我有以下HTML代码:
<div class="a">
<div class="b">
<a href="#">text</a>
</div>
<div class="c">
text
</div>
</div>
div.a
{
margin-top: 10px;
clear: left;
float: left;
width: 100%;
text-align: center;
}
div.b
{
padding: 27px 10px 7px 10px;
background-color: #fff;
overflow: hidden;
float: left;
}
div.c
{
float: left;
}
Run Code Online (Sandbox Code Playgroud)
我应该为div.c设置哪些样式,使其在div.b旁边并适合剩余的宽度?
这是一个适合100%屏幕的tempalte.
谢谢!
首先,一个没有编程的问题:我的电话自动回复未接来电,并显示一条短信:“对不起。我现在不在手机旁。” 我的手机在哪里得到了执行此操作的想法,以及如何使其停止?
还有一个编程问题:如何让我的Android响应未接来电,例如给我发送电话号码,或者只是自定义SMS自动回复(也许回复我的位置),以便随心所欲。
我的应用程序使用客户端企业缓存; 我想避免为每个可缓存的调用编写代码,并想知道是否存在可以缓存WCF客户端调用的解决方案,即使对于异步调用也是如此.
这可以通过WCF"行为"或其他方式完成吗?代码示例?
.net ×2
c# ×2
android ×1
browser ×1
caching ×1
coding-style ×1
css ×1
dictionary ×1
flowdocument ×1
javascript ×1
jetty ×1
lua ×1
silverlight ×1
size ×1
sms ×1
sql ×1
sql-server ×1
struct ×1
tomcat ×1
triggers ×1
types ×1
voice ×1
wcf ×1
wpf ×1