我需要在RTB中突出显示我的文本的某一部分,而不是在改变字体样式/颜色的意义上,而是在使用特定颜色进行块选择的意义上.这类似于Visual Studio在调试模式下突出显示一行的方式.
如何使用RTB完成此功能,或者更确切地说,它是否可能?如果不可能,我想听听另一种执行上述任务的方法.
我想实现一些在提供文档行时以编程方式更改文本背景的东西。(看起来与文本块选择非常相似的东西。我将使用它来调试我正在使用的 IDE 的断点设计)。我不想使用选择,因为它会导致文本框滚动。
我想我需要使用 DocumentColorizingTransformer 但我不是 100% 确定如何去做。
public class ColorizeAvalonEdit : ICSharpCode.AvalonEdit.Rendering.DocumentColorizingTransformer
{
protected override void ColorizeLine(ICSharpCode.AvalonEdit.Document.DocumentLine line)
{
int lineStartOffset = line.Offset;
string text = CurrentContext.Document.GetText(line);
int start = 0;
int index;
if (line.LineNumber == LogicSimViewCodeWPFCtrl.currentLine)
{
while ((index = text.IndexOf(text, start)) >= 0)
{
base.ChangeLinePart(
lineStartOffset + index, // startOffset
lineStartOffset + index + text.Length, // endOffset
(VisualLineElement element) =>
{
element.TextRunProperties.SetBackgroundBrush(Brushes.Red);
});
start = index + 1; // search for next occurrence
}
}
}
} …
Run Code Online (Sandbox Code Playgroud) 我需要在我的应用程序中绘制如上所示的图形.Y轴的值定期更新,其从电子设备获得,X轴表示经过的时间.默认情况下,X轴的查看范围会在秒过后自动更新(水平延伸).
我发现有一件事非常具有挑战性,用户还可以手动设置X轴和Y轴的范围,因此我需要提出一种灵活的方法来处理该部分.
我可以就处理上述要求获得一些建议吗?我更喜欢WPF,但Winforms也很好.是否有任何示例项目可以解决与上述类似的问题?或者我可以使用的任何第三方dll(用于商业目的)?
如何在消息操作中传入枚举?例如,
XAML:
<UserControl.ContextMenu>
<ContextMenu StaysOpen="True">
<MenuItem Header="Arrow"
cal:Message.Attach="ChangeArrowType(LogicArrowEnum.ARROW)"/>
....
Run Code Online (Sandbox Code Playgroud)
视图模型:
public void ChangeArrowType(LogicArrowEnum arrowType)
{
MessageBox.Show(arrowType); //arrowType is empty!
}
public enum LogicArrowEnum
{
ARROW = 1,
ASSIGN = 2,
IF = 3,
IF_ELSE = 4
}
Run Code Online (Sandbox Code Playgroud) 我用 C# 制作了一个服务器/客户端应用程序。
我的问题如下:假设客户端位于 NAT 后面(如路由器)并尝试连接到服务器。从服务器的角度来看,服务器只知道客户端的外部 IP 地址。您如何准确确定将数据包发送到位于 NAT 后面的哪台计算机?我了解从客户端路由器的端口转发是解决此类问题的常用方法,但是如果您查看 Skype 等应用程序,则无需端口转发即可在服务器与 NAT 后面的许多客户端之间正确建立连接. 这个问题也可以反过来问(IE:客户端到服务器在 NAT 后面)。
我对套接字编程还很陌生,所以我很想听听任何可以阅读以完全理解这些内容的指南或材料。
突然之间,曾经完美运行的Eclipse将不再启动。这是日志:
!SESSION 2012-11-13 11:10:21.718 -----------------------------------------------
eclipse.buildId=M20060921-0945
java.version=1.7.0_09
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=ko_KR
Framework arguments: -vm C:\j2sdk1.4.2_19\bin\javaw.exe
Command-line arguments: -os win32 -ws win32 -arch x86 -vm C:\j2sdk1.4.2_19\bin\javaw.exe
!ENTRY org.eclipse.equinox.common 4 0 2012-11-13 11:10:23.281
!MESSAGE FrameworkEvent.ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle could not be resolved. Reason: Missing Constraint: Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,J2SE-1.3
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:294)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:329)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1046)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:573)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:495)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:275)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:455)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:189)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:291)
!ENTRY org.eclipse.update.configurator 4 0 2012-11-13 11:10:23.312
!MESSAGE FrameworkEvent.ERROR
!STACK 0
org.osgi.framework.BundleException: …
Run Code Online (Sandbox Code Playgroud) 请考虑以下两个表
表格1
ID DATA 1 'A' 2 'B' 3 'C' 4 'D' 5 'E' 6 'F'
表2
ID DATA 2 'G' 3 'F' 4 'Q'
如何将表2中的数据插入表2中,表2中没有表1的ID?
换句话说,我想得到以下结果:
表2
ID DATA 1 'A' 2 'G' 3 'F' 4 'Q' 5 'E' 6 'F'
我有一个绑定到可观察集合的数据网格.
我希望通过我的Datagrid 实现此帖中显示的类似内容,但还有其他注意事项:
基本上我正在尝试创建一个类似于Visual Studio内部的错误列表窗口.
我很欣赏任何指导方针.
我希望有人可以解决我在upnp/ssdp协议使用的NOTIFY和M-SEARCH消息的目的背后的困惑.
我的理解是当设备想要将自己通告给其他支持UPNP的设备时发送NOTIFY消息,并且当设备想要找出其他支持UPNP的设备时发送M-SEARCH消息.
那么,如果我的设备通过广播地址(对于SSDP,239.255.255.250)从其他设备收到M-SEARCH消息,我会以适当的格式回复它:
HTTP/1.1 200 OK
CACHE-CONTROL: max-age = seconds until advertisement expires
DATE: when response was generated
EXT:
LOCATION: URL for UPnP description for root device
SERVER: OS/version UPnP/1.0 product/version
ST: search target
USN: advertisement UUID
Run Code Online (Sandbox Code Playgroud)
这是我的问题.为什么NOTIFY消息首先存在?由于您在看到M-SEARCH时将设备信息发送回所请求的设备,因此在我看来,除非有人要求,否则无需提前通知设备信息,因为其他听取广告的设备可能是在NOTIFY发送时可能无法使用.
换句话说,我想知道NOTIFY与M-SEARCH相比的确切目的,最好是使用它的实际例子.
或者我只是完全误解了这个协议?
我对trim方法有一个非常奇怪的问题.我正在尝试修剪从数据库收到的字符串.这是我目前的方法:
string debug = row["PLC_ADDR1_RESULT"].ToString();
SPCFileLog.WriteToLog(String.Format("Debug: ${0}${1}",debug,Environment.NewLine));
debug = debug.Trim();
SPCFileLog.WriteToLog(String.Format("Debug2: ${0}${1}", debug, Environment.NewLine));
debug = debug.Replace(" ", "");
SPCFileLog.WriteToLog(String.Format("Debug3: ${0}${1}", debug, Environment.NewLine));
Run Code Online (Sandbox Code Playgroud)
它产生如下文件输出:
Debug: $ $
Debug2: $ $
Debug3: $ $
Run Code Online (Sandbox Code Playgroud)
检查文件中的十六进制代码揭示了一些有趣的东西 假设为空的空格不是十六进制20(空格),但它们被设置为00(null?)
我们的数据库如何包含这样的数据是另一个谜,但无论如何,我需要修剪那些无效的(?)空字符.我怎样才能做到这一点?
.net ×7
c# ×7
wpf ×4
networking ×2
sql-server ×2
winforms ×2
avalonedit ×1
datagrid ×1
eclipse ×1
graph ×1
richtextbox ×1
sql ×1
ssdp ×1
text-editor ×1
upnp ×1