小编Ala*_*ark的帖子

如何在WPF RichTextBox中跟踪TextPointer?

我试图在WPF RichTextBox中绕过TextPointer类.

我希望能够跟踪它们,以便我可以将信息与文本中的区域相关联.

我目前正在使用一个非常简单的例子来试图弄清楚发生了什么.在PreviewKeyDown事件中,我存储插入符号位置,然后在PreviewKeyUp事件中,我根据插入符号位置之前和之后创建TextRange.这是一个代码示例,说明了我要做的事情:

// The caret position before typing
private TextPointer caretBefore = null;

private void rtbTest_PreviewKeyDown(object sender, KeyEventArgs e)
{
    // Store caret position
    caretBefore = rtbTest.CaretPosition;
}

private void rtbTest_PreviewKeyUp(object sender, KeyEventArgs e)
{
    // Get text between before and after caret positions
    TextRange tr = new TextRange(caretBefore, rtbTest.CaretPosition);
    MessageBox.Show(tr.Text);
}
Run Code Online (Sandbox Code Playgroud)

问题是我得到的文字是空白的.例如,如果我输入字符'a',那么我希望在TextRange中找到文本"a".

有谁知道出了什么问题?这可能是非常简单的事情,但我花了一个下午无处可去.

我试图接受新的WPF技术,但发现特别是RichTextBox非常复杂,甚至使得这样的简单事情变得困难.如果有人有任何链接可以很好地解释TextPointer,如果你能让我知道,我将不胜感激.

c# wpf richtextbox

8
推荐指数
1
解决办法
9329
查看次数

忽略ASP .NET MVC中的文件夹

我有一个现有的ASP .NET MVC应用程序,我想忽略其中的特定文件夹(我打算放置PHP脚本).

我曾尝试将作为描述的忽略路线在这里,但它不工作,因为我仍然得到标准的ASP.NET配置错误.

例如,假设我有这个文件夹结构:

root+
    |
    +--bin
    |
    +--test
Run Code Online (Sandbox Code Playgroud)

根据我的理解,在我的global.asax.cs文件中,我想我应该把它放在RegisterRoutes方法中:

routes.IgnoreRoute("test/{*.pathInfo}");
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

谢谢,艾伦

编辑:发布web.config

<configuration>
<configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
                <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc routing

8
推荐指数
1
解决办法
6668
查看次数

从WPF中的Winforms组件处理未处理的异常

我的应用程序是用WPF构建的,但它包含了我们编写的一些WinForms组件.当在其中一个WinForms组件中未处理异常时,它会使应用程序崩溃.

我已经DispatcherUnhandledException为WPF事件实现了.这很好,因为它允许我显示错误并将异常标记为Handled以避免崩溃.

我可以使用非WPF例外做类似的事情.我希望过去的标准WinForms对话框允许用户继续或完全应用程序?

编辑:WinForms异常确实被捕获DispatcherUnhandledException但将e.Handled设置为true并不会阻止应用程序崩溃.

.net c# wpf exception winforms

8
推荐指数
1
解决办法
4216
查看次数

我可以自定义AvalonDock上下文菜单吗?

我在项目中使用AvalonDock来利用工具窗口.

当我右键单击工具窗口标题栏时,我不需要选项卡式文档并且想要禁用"Dock as Tabbed Document"上下文菜单项.这可能吗?

谢谢

c# wpf contextmenu dock avalondock

7
推荐指数
1
解决办法
3168
查看次数

为什么我的项目在没有变化的情况下构建?

我有很多C#(Visual Studio 2008)项目,其中一些项目正在更新程序集,即使没有任何更改(即使我选择Build而不是Rebuild).我的大多数项目都不这样做,只是奇怪的几个.

我还没有找到项目之间的任何差异,并想知道是否有人有任何想法可能会影响它.为了清楚起见,我在构建之前没有进行任何代码更改,但是当我在Visual Studio中运行Build命令时仍然正在重新创建程序集.

对不起,我不能提供任何进一步的细节,但请告诉我,如果还有什么我可以检查可能会有所帮助.

有人可以帮忙吗?我已经把头发弄了一会儿.

谢谢,艾伦

c# projects build csproj visual-studio

6
推荐指数
2
解决办法
1988
查看次数

如何在64位Ubuntu上构建32位Qt5应用程序

我目前在64位Ubuntu机器上安装了64位版本的Qt5,但我也希望能够在同一台机器上进行32位版本.在Windows上,我可以在MaintenanceTool中选择其他套件,但在Linux上这似乎不可能.或者我错过了什么?

ubuntu qt gcc 32bit-64bit qt5

6
推荐指数
1
解决办法
1410
查看次数

Word Automation:检测是否需要分页?

我正在使用C#生成一个项目,该项目将使用Word Automation API生成Word文档.

我想在生成的文档中的特定点插入分页符,我目前正在使用以下代码成功执行此操作:

// Generate page break
object pageBreak = WdBreakType.wdPageBreak;
wordApp.Selection.InsertBreak(ref pageBreak);
Run Code Online (Sandbox Code Playgroud)

但是,如果在上一页的空间用完之后文档仍然自然地包裹在下一页上,那么我真的不想生成分页符,否则我最终会得到一个空白页面.

我真正想要的是能够找到光标的确切位置,如果它位于当前页面的第一行和第一列,那么我可以安全地假设没有必要插入分页符.

有没有办法访问光标的位置?或者另一种可以做同样事情的解决方案?这似乎是一个简单的要求,所以如果我错过了显而易见的事情,我会事先道歉.

c# automation ms-word break

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

MSBuild Post-Build

我有一个MSBuild脚本,除了我的后期构建步骤之外,还要做我需要做的所有事情(请参阅我之前提出的问题:MSBuild条件Exec?).

我正在寻找的是构建许多csproj文件,并且当且仅当项目构建时,可选择执行构建后步骤.我不想一直执行我的后期构建步骤,否则我的最终输出上的时间戳将被不必要地修改(并且它使得构建过程非常耗时而无缘无故).

在我的MSBuild脚本中,我为每个csproj文件提供了以下内容:

<Target Name="ProjectName">
   <MSBuild Projects="PathToProject" Properties="Configuration=$(buildtype)" />
</Target>
Run Code Online (Sandbox Code Playgroud)

编辑: 我认为我真正想做的是检测CoreCompile任务何时为每个项目运行.如果在某种情况下有某种方法来检查这个问题?

有任何想法吗?

我是MSBuild的新手,所以也许我完全走错了轨道!

谢谢,艾伦

c# msbuild csproj post-build

5
推荐指数
2
解决办法
4669
查看次数

Winforms Drawing - 参数在系统恢复时无效

当我的应用程序运行并且系统从休眠状态恢复时(在Windows 7中),我遇到了一个奇怪的问题.

我正在调用Graphics.DrawString方法,这在大多数情况下工作正常.除了程序运行并且我休眠系统.然后,当我恢复,拉绳方法引发ArgumentException(参数无效),并给了我一个红色的叉在我的绘画应该是.

这里出了什么问题?捕获异常避免了红叉,但是当我们进入这种状态是没有办法回来,除了将继续抛出的程序重新启动为止.

感谢您的帮助,艾伦

编辑:这是失败的代码:

protected override void OnPaint(PaintEventArgs e)
{
    // Drawing logic succeeds until this point

    e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), new PointF(x, y));
}
Run Code Online (Sandbox Code Playgroud)

这实际上是ToolStripLabel的子类.

c# drawing exception winforms

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

使用GetLineStartPosition获取WPF RichTextBox中一行的结尾

一点背景.我希望能够在WPF RichTextBox中处理插入符号所在行的文本.请参阅我之前关于TextPointer类的问题:如何在WPF RichTextBox中跟踪TextPointer?.

我知道如何通过使用GetLineStartPosition并将0作为参数来获取当前行开头的TextPointer,但现在想要在行的末尾获取TextPointer.在我之前的问题中建议使用GetLineStartPosition方法.

如果有人可以解释一下GetLineStartPosition如何处理行结束指针,我将不胜感激.

在此先感谢您的帮助.

c# wpf richtextbox

4
推荐指数
1
解决办法
6048
查看次数