小编OhB*_*ise的帖子

设计时错误查找资源字典 - 项目之间不一致

TLDR;

屏幕ResourceDictionary在运行时正确地引用VS2015样式的外部文件,但不是在设计时.是什么赋予了?


在工作中,我们有一个WinForms产品,其中包含许多 WinForms屏幕,一个开发人员主动添加新的屏幕,以及一些WPF屏幕,我添加了新的.在现有的WPF屏幕中注意到很多重复的代码/样式,我创建了一个单独的项目来容纳这个 - 由所有现有/未来的WPF屏幕引用.

项目: WpfHelper

  • 平台目标:任何CPU
  • 目标框架:.NET Framework 4.6
  • WpfHelper.dll 部署到 ...\Trunk\Project\Externals
  • ...\Trunk\Utilities\WpfHelper\WpfHelper\Resources\GlobalResources.xaml
    • 构建行动:页面
    • ResourceDictionary包含通用样式

我已...\Trunk\Project\Externals\WpfHelper.dll在六个项目中引用,将以下代码添加到每个资源文件中:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/WpfHelper;Component/Resources/GlobalResources.xaml" />
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)

所有屏幕都位于...\Trunk\Project\Plugins.

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?          ? Resource Works? ? Platform Target ? Target Framework ? Reference File Path                            ?
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? Project1 ? Succeeded       ? Any CPU         ? .NET 4.6         ? ...\Project1\Project1\Resources\Resources.xaml ?
? Project2 ? Succeeded       ? x86             ? .NET 4.6         ? ...\Project2\Project2\Resources\Resources.xaml ?
? Project3 ? Succeeded       ? Any …
Run Code Online (Sandbox Code Playgroud)

c# wpf resourcedictionary visual-studio-2015

9
推荐指数
1
解决办法
988
查看次数

如何在DataGridView中建议附加ComboBox?

我有一个ComboBox在一个c#视窗形成应用程序,其中我已经设置AutoCompleteModeSuggestAppend,而该文本被自动附加到输入(图1).

但如果我设置AutoCompleteModeSuggestAppendDataGridView ComboBox不追加文本(图2).

如何SuggestAppend在datagridview组合框中启用?

图.1 :

自动完成组合框

图2:

自动完成DataGridViewComboBoxCell

c# combobox datagridview winforms

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

如何阻止RichTextBox内联在TextChanged中被删除?

我的任务是创建一个部分可编辑的RichTextBox.我已经在Xaml中看到了TextBlock为这些ReadOnly部分添加元素的建议,但是它具有不能很好地包装的不期望的视觉效果.(它应该显示为单个连续文本块.)

我使用一些反向字符串格式化修补了一个工作原型来限制/允许编辑,并将其与动态创建内联Run元素结合起来用于显示目的.使用字典存储文本的可编辑部分的当前值,我会Run根据任何TextChanged事件触发器相应地更新元素- 并且如果可编辑部分的文本被完全删除,它将被替换回其默认值.

在字符串中:"嗨,NAME,欢迎来到SPORT营地." ,只有NAMESPORT可编辑.

                ??????????????????                    ??????????????????
Default values: ? Key   ? Value  ?    Edited values:  ? Key   ? Value  ?
                ??????????????????                    ??????????????????
                ? NAME  ? NAME   ?                    ? NAME  ? John   ?
                ? SPORT ? SPORT  ?                    ? SPORT ? Tennis ?
                ??????????????????                    ??????????????????

 "Hi NAME, welcome to SPORT camp."    "Hi John, welcome to Tennis camp." …
Run Code Online (Sandbox Code Playgroud)

c# wpf richtextbox

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

更改单元格的背面颜色为DataGridViewComboBoxColumn

我创建了一个DataGridView对象,其中的列类型为DataGridViewComboBoxColumn,以允许用户从下拉列表中选择值。例如,如果用户选择“高”,我想给组合框的背面上色。但是,它不会为组合框着色,而只会为组合框值着色。

代码是:

dgvOverallRisk.Rows[0].Cells[1].Style.ForeColor = Color.Aqua;
dgvOverallRisk.Rows[0].Cells[1].Style.BackColor = Color.Red;
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

在此处输入图片说明

在此处输入图片说明

c# datagridview winforms

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

从 TextBlock 中删除 Environment.Newline 但不从 DataSource 中删除

我正在创建一个 WPF 屏幕(使用 MVVM 模式),它显示ListViewin中的日志条目TextBlock,包括异常详细信息。

<GridViewColumn
    ListViewBehaviors:LayoutColumn.Width="1*"
    ListViewBehaviors:LayoutColumn.MinWidth="123"
    ListViewBehaviors:LayoutColumn.IsHidden="{Binding ExceptionDataIsHidden}"
    DisplayMemberBinding="{Binding ExceptionData, Mode=OneWay}"
    Header="Exception Data"/>
Run Code Online (Sandbox Code Playgroud)

由于记录数据的方式,异常字符串包含大量回车/换行符。例子:

System.BigBadException: Stuff blew up -> Some file location 
  at SomeMethodCallAtTheTopLevel: line 1234
  at SomeMethodCallAtTheNextLevel: line 123
  at SomeMethodCallAtAnotherLevel: line 12
  at SomeMethodCallOnBottomLevel: line 1
Run Code Online (Sandbox Code Playgroud)

有些例外情况可能相当大。当我的ListView. 这些字符并没有在一行上很好地显示每个条目,而是Environment.Newline强制每一行都是多行,从而导致用户在查看行条目时需要更多的滚动。

我意识到一个简单的解决方案是手动删除换行符,如下所示:

foreach (LogEntry entry in allEntries)
{
  entry.ExceptionData = entry.ExceptionData.Replace(Environment.NewLine, ""); 
}
Run Code Online (Sandbox Code Playgroud)

问题

我希望文本显示在GridViewColumn单元格中,就好像所有文本Newline都已被删除一样。但是,我想保留数据中的这些换行符。用户可以右键单击单元格并将其值复制到剪贴板。当粘贴到文件(例如记事本)中时,我希望存在换行符以使格式更易于阅读。

有没有办法忽略 xaml 中的换行符或通过其他方式? 或者我想吃掉我的蛋糕并把它也占有吗?

c# wpf xaml newline carriage-return

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

为什么字符串的行为在这里不同?为什么第一个for循环打印没有,第二个正确打印输出

在这种String长度编码算法中,我无法理解字符串的奇怪行为.任何人都可以解释字符串的用法吗?for loop下面的第一个打印没有,而第二个正确打印.我尝试使用大小,长度和调整大小,仍然for loop没有打印任何东西.

#include <iostream>
using namespace std;

int main() {
    // your code goes here
    string str, newstr;
    str="aabcccccaaa";
    newstr[0]=str[0];
    cout<<str;
    int j = 1;
    for (int i =0; i<str.length(); i++)
    {
            int count =1;
            while(i+1 != str.length() && str[i] == str[i+1])
            {
                count++; i++;
            }
            newstr[j] = '0'+count;
            if(i+1 != str.length())
            {   newstr[j+1] = str[i+1];
                j=j+1;
            }
            j=j+1;
    }
    cout<<"\nRun String:";
    for(int i =0; i<newstr.size(); i++) // First For loop.
        cout<<newstr[i];
    for(int …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

0
推荐指数
1
解决办法
53
查看次数