小编man*_*ans的帖子

阻止用户在WPF DataGrid中选择/取消选择行

我有一个DataGridWPF页面,并希望阻止用户选择单元格.由于此功能仅用于测试,我不想更改代码中的所有内容.

DataGrid填写完毕后,我确保选中所有行.现在我想确保用户无法选择/取消选择行.

我尝试了设置IsEnabled = false,IsHitTestVisible = "False"但这两种解决方案都禁用了滚动条.

有没有办法做到这一点?

wpf datagrid selection

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

c ++中的命名空间名称

我试图用以下方式在c ++中创建一个名称空间:

namespace MyCompany.Library.Myproduct {

public ref class ClassWrapper
{

};
 }
Run Code Online (Sandbox Code Playgroud)

我收到错误:

  Error 1   error C2059: syntax error : '.' ClassWrapper.h  7   1    MyCompany.Library.Myproduct 
Run Code Online (Sandbox Code Playgroud)

为什么我不能拥有.在命名空间?

EDIT1

此命名空间定义位于c ++/cli中,将用于c#代码.在C#中,这个命名空间是有效的,但它似乎在c ++中无效.如何在c ++/cli代码中定义c#兼容的命名空间?

c++ namespaces c++-cli

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

在OpenCV中创建透明图像

我试图在OpenCV中创建一个透明的图像,并将其作为jpg挥动,但没有任何成功.

我的代码是这样的:

string outputImageName="myimage.jpg";
Mat outputImage(outputRows,outputCols,CV_8UC4);
outputImage=cv::Scalar(255,255,255,255);
imwrite(outputImageName,outputImage);
Run Code Online (Sandbox Code Playgroud)

但图像不透明,颜色为白色.

我怎样才能做到这一点?

如果OpenCV不能这样做,有没有我用于此的免费库?

c++ opencv image-processing

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

将opencv图像转换为gdi位图不起作用取决于图像大小

我有这个代码将opencv图像转换为位图:

  void processimage(MAT imageData)
  {
      Gdiplus::Bitmap bitmap(imageData.cols,imageData.rows,stride, PixelFormat24bppRGB,imageData.data);

   // do some work with bitmap
  }
Run Code Online (Sandbox Code Playgroud)

当图像的大小是2748 X 3664时,它运行良好.但是我想要处理尺寸为1374 X 1832的图像,它不起作用.

错误是无效的参数(2).

我查了一下,可以确认:

在2748*3664:

  • COLS = 2748
  • 行= 3664
  • stride = 8244
  • 图像继续.

在1374 X 1832

  • COLS = 1374
  • 行= 1832
  • stride = 4122
  • 图像继续.

所以一切对我来说都是正确的,但它会产生错误.

有什么问题,我该如何解决?

编辑

根据答案解释了为什么我无法创建位图.我终于以这种方式实现了它:

   Mat newImage;
   cvtColor(imageData, newImage, CV_BGR2BGRA);
   Gdiplus::Bitmap bitmap(newImage.cols,newImage.rows,newImage.step1(), PixelFormat32bppRGB,newImage.data);
Run Code Online (Sandbox Code Playgroud)

如此有效,我将输入图像转换为每像素4字节,然后使用转换为位图.

所有归功于Roger Rowland 的答案.

c++ opencv image bitmap

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

当 wpf 中文本框的背景为灰色时,插入符号消失

我在 wpf 中有一个文本框定义如下:

  <TextBox Grid.Column="4" Grid.Row="1" x:Name="InputDirectory" Margin="2" Background="Gray"/>
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,它不显示插入符号,如果我删除背景颜色或将其更改为其他颜色(我测试了白色、黑色和蓝色),则会出现插入符号。

当背景为灰色时,如何确保插入符号出现?

c# wpf styling

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

为什么这个结构的大小不正确

我有这个示例代码,我用pack装饰,以确保其大小为5字节(4为int,1为char).

但它打印出struct的大小是8字节.

#pragma pack push
#pragma pack 1
struct mystruct
{
    int x;
    char y;
};
#pragma pack pop

//static_assert(sizeof(mystruct) == 5, "Size of mystruct should be 5 byte.");

int _tmain(int argc, _TCHAR* argv[])
{
    int x=sizeof(mystruct);
    printf("size of struct is %d\n",x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么te pck不工作?

如何确保struct的大小始终为5.

c++ struct sizeof

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

c ++中的const参数和const方法

我有一个这样的课:

class MyClass
{
    const int GetValue()
    {   
        return 2;
     }
}
Run Code Online (Sandbox Code Playgroud)

我将它传递给这样的函数:

void Test(const MyClass &myClass)
{
   int x=myClass.GetValue();
}
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

The object has type qualifiers that are not compatible with member function Object type is const MyClass
Run Code Online (Sandbox Code Playgroud)

我知道如果我定义这样的函数:

void Test( MyClass &myClass)
Run Code Online (Sandbox Code Playgroud)

但我想知道为什么添加const会产生这样的错误?

c++ const

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

如何将保存在字节数组中的 UUID 转换为字符串 (c++)

我有一个保存为 16 字节数据的 UUID,如下所示:

   unsigned char uuid[16]; //128-bits unique identifier
Run Code Online (Sandbox Code Playgroud)

我想将其转换为 std::string。我可能可以编写一个循环来思考所有字节并生成字符串,但我正在寻找一个更简单/更快的解决方案。有这样的解决办法吗?

c++ uuid guid

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

如何在c ++中正确地将char数组转换为字符串

我有这两组char数组:

  char t1[]={'1','2','\0','\0'};
  char t2[]={'1','2','3','4'};
Run Code Online (Sandbox Code Playgroud)

我想编写一个函数将它们转换为字符串,但t1的字符串大小应为2,而t2的字符串大小应为4.

 string convert(char * data)
 {
      return string(data);
 }
Run Code Online (Sandbox Code Playgroud)

对t1做得很好,但在t2上崩溃(t2不是空终止).

 string convert(char * data)
 {
      return string(data,data+4);
 }
Run Code Online (Sandbox Code Playgroud)

对于t2做得很好,但是t1的生成字符串的大小是4而不是2.

编写简单快速的函数来正确执行此操作的最佳方法是什么?

c++ arrays string

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

我可以在c ++的头文件中放置内联函数吗?

我有一个非常小的功能,它不属于任何类.我可以将它放在头文件中以使其内联吗?像这样的东西:

inline int add(int a, int b)
{
      return a+b;
}
Run Code Online (Sandbox Code Playgroud)

请注意,它不是类的方法,而是交流类型的功能.

c++ inline header-files

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