小编Pat*_*ick的帖子

C#本身是否使用GPU进行图形处理?

我想以最快的方式绘制大量使用图形.如果我使用标准的C#图形回调(es.graphics.drawline),我做得对吗?还是我要使用不同的库?

c# graphics gpu

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

C#不能跨程序集边界使用,因为它具有嵌入式互操作类型的泛型类型参数

我用C#(wpf)面对这个错误.这个链接没用

不能跨程序集边界使用,因为它具有嵌入式互操作类型的泛型类型参数

只是为了解释我的程序结构,我可以说:

我正在使用外部公司制作的图书馆.我们可以称之为PCDLRN

在解决方案中,我有一个由我制作的项目,其中包括上一个库中的类型.在我的库中我定义:

public ObservableCollection<PCDLRN.DimensionCmd> obcPcdlrnDimensionCommands = new ObservableCollection<PCDLRN.DimensionCmd>();
Run Code Online (Sandbox Code Playgroud)

为了在我的主程序中使用.简而言之:

PCDLRN-> MYLIB obcPcdlrnDimensionCommands - >我的程序myPcd.obcPcdlrnDimensionCommands

在我的程序中,我想访问前面提到的ObservableCollection,但它没有在标题中给出错误.

在此输入图像描述

--EDIT ---正如所建议的那样,我已经将embedded = true更改为false,因为更改了图片中的prop,但错误仍然存​​在

在此输入图像描述

c# wpf dll compiler-errors .net-assembly

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

如何有效地将可观察集合中的范围选择到另一个可观察集合中

像(伪代码)的东西

ObservableCollection<TheClass> ob1 = new ObservableCollection<TheClass>();
ob1.Add(...);
ob1.Add(...); 
ob1.Add(...);
ob1.Add(...); 
ObservableCollection<TheClass> ob2;
ob2 = ob1.Range(0, 2);
Run Code Online (Sandbox Code Playgroud)

考虑到两个集合都可以包含大量数据.

谢谢

c# wpf range observablecollection

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

网格或边框不允许掉线

我必须将应用程序li​​stView拖放到代码生成的网格中.所以我做了一个测试程序,这是有效的

在此输入图像描述

这是xaml

<Grid Margin="0,0,-61.6,0.4">
<ListView x:Name="lwOne"  PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown"  Background="Bisque" Margin="16,65,340.2,22">
  <ListView.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel Orientation="Horizontal" Width="250" VerticalAlignment="Top"></WrapPanel>
    </ItemsPanelTemplate>
  </ListView.ItemsPanel>

</ListView>

<Grid Name="grdMain" Drop="Grid_Drop" Background="AliceBlue" AllowDrop="True" Margin="380,65,81.2,62"/>
Run Code Online (Sandbox Code Playgroud)

现在我必须将所有这些迁移到我看起来像这样的真实应用程序 在此输入图像描述

因此,从光标的外观来看,我可以看到网格上不允许拖放,但它位于每个单元格的微小边框上.所以问题不是做d&d而是允许它

这是xaml.源listView是lvAllowedPPtab2,目标网格是grdPalletTab2

<TabItem Name="tabItem2" HorizontalAlignment="Center" Height="80" MouseLeftButtonUp="TabItem_MouseLeftButtonUp"  FontSize="{StaticResource TOOLTIP_FONTSIZE}" IsSelected="false" >
    <TabItem.Header>
      <StackPanel>
        <TextBlock Text="&#xF0F7;" FontSize="{StaticResource TAB_FONTSIZE}"/>
        <TextBlock Name="tbTab2" Visibility="Hidden" FontSize="{StaticResource BUTTON_FONTSIZE}" />
      </StackPanel>
    </TabItem.Header>
    <TabItem.Background>
      <ImageBrush/>
    </TabItem.Background>
    <Grid >
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
      </Grid.ColumnDefinitions>
      <Border x:Name="Border1Tab2" BorderBrush="Gainsboro" BorderThickness="5" Width="200" Margin="10,10,10,10" >
        <StackPanel Margin="-1.8,-0.8,2.2,1.4">
          <ListBox x:Name="lbxPalletsTab2" Background="{x:Null}" BorderBrush="{x:Null}" Height="600" SelectionChanged="ListBox_SelectionChanged" Margin="12,10.2,8.4,10.4" /> …
Run Code Online (Sandbox Code Playgroud)

c# wpf grid listview drag-and-drop

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

WPF如何有效检测用户活动

我有一个应用程序,在其中 x 秒不活动后我必须注销。因此,我有一个计时器正在运行,并根据上次重置的用户活动计算时间跨度:

dtLastActivity = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

所以问题是,我认为这不是将程序中的每个事件与上述代码相关联的最佳方法。但最终我不需要每个事件:所有有用的就是跟踪 KEYPRESS 和 MOUSEUP。

在主窗口中跟踪这两个事件是否正确?

我必须承认,我仍然没有付诸实践(但我会),因为我不确定这是否是达到标题目的的最佳方法。

作为 WPF 新手,我也不清楚在主窗口中跟踪键盘和鼠标是否不会影响子级(即实际上是事件目标的控件)的行为。

预先感谢您的任何帮助。

---编辑--- 建议的解决方案非常优雅。特别是这个:

    public static class IdleTimeDetector
    {
        [DllImport("user32.dll")]
        static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

        public static IdleTimeInfo GetIdleTimeInfo()
        {
            int systemUptime = Environment.TickCount,
                    lastInputTicks = 0,
                    idleTicks = 0;

            LASTINPUTINFO lastInputInfo = new LASTINPUTINFO();
            lastInputInfo.cbSize = (uint)Marshal.SizeOf(lastInputInfo);
            lastInputInfo.dwTime = 0;

            if (GetLastInputInfo(ref lastInputInfo))
            {
                lastInputTicks = (int)lastInputInfo.dwTime;
                idleTicks = systemUptime - lastInputTicks;
            }

            return new IdleTimeInfo
            {
                LastInputTime = DateTime.Now.AddMilliseconds(-1 * idleTicks), …
Run Code Online (Sandbox Code Playgroud)

c# wpf events android-activity

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

如何有效地复制列表中的特定值

在 C# 中,如何复制列表中的值?我找到了大量的解决方案智能解决方案(尤其是在 Linq 中)用于如何删除,但没有关于如何复制的解决方案,并且在任何情况下都无法根据我的需要调整代码。

例如,如果我想复制 16 --> Lst {0 0 12 13 16 0 3} ---> {0 0 12 13 16 16 0 3}

我不必循环使用它们,但更喜欢一条指令

谢谢你的帮助

帕特里克

c# linq arrays list

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

WPF为笔触和填充形成不同的不透明度

这是一个非常基本的问题.我希望能够为填充和笔划添加定义不同不透明度的形状.如果我添加这个:

Ellipse e = new Ellipse();
e.Width = e.Height = 150;
e.Stroke = Brushes.Aqua;
e.Fill = Brushes.Chartreuse;
e.StrokeThickness = 20;
e.Opacity = .25;
plotCanvas.Children.Add(e);
Run Code Online (Sandbox Code Playgroud)

我只能设置1个不透明度.相反,我希望填充为0.25不透明,并且笔划为1.0不透明.谢谢帕特里克

c# wpf opacity fill stroke

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

如何通过C#WPF隐藏Excel工作表中的网格线

按照此

http://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Worksheet/How-to-hide-or-show-gridlines-on-a-worksheet-in-C.html
Run Code Online (Sandbox Code Playgroud)

隐藏网格线我应该做的只是:

Workbook wb = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
  Worksheet ws = wb.Worksheets[1];
   ws.GridLinesVisible = false;<----WRONG
Run Code Online (Sandbox Code Playgroud)

但那是错的.

还有解决方案

如何使用open xml C#在Excel中禁用网格线?

不起作用.那么任何其他方法?

先感谢您.帕特里克

c# wpf excel visibility gridlines

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