我想以最快的方式绘制大量使用图形.如果我使用标准的C#图形回调(es.graphics.drawline),我做得对吗?还是我要使用不同的库?
我用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,但错误仍然存在
像(伪代码)的东西
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)
考虑到两个集合都可以包含大量数据.
谢谢
我必须将应用程序listView拖放到代码生成的网格中.所以我做了一个测试程序,这是有效的
这是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="" 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) 我有一个应用程序,在其中 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# 中,如何复制列表中的值?我找到了大量的解决方案智能解决方案(尤其是在 Linq 中)用于如何删除,但没有关于如何复制的解决方案,并且在任何情况下都无法根据我的需要调整代码。
例如,如果我想复制 16 --> Lst {0 0 12 13 16 0 3} ---> {0 0 12 13 16 16 0 3}
我不必循环使用它们,但更喜欢一条指令
谢谢你的帮助
帕特里克
这是一个非常基本的问题.我希望能够为填充和笔划添加定义不同不透明度的形状.如果我添加这个:
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不透明.谢谢帕特里克
按照此
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)
但那是错的.
还有解决方案
不起作用.那么任何其他方法?
先感谢您.帕特里克