小编Den*_*nis的帖子

如何删除C中的标志?

有一个变量,它包含一些标志,我想删除其中一个.但我不知道如何删除它.

这是我如何设置标志.

my.emask |= ENABLE_SHOOT;
Run Code Online (Sandbox Code Playgroud)

c flags bit-manipulation

142
推荐指数
3
解决办法
8万
查看次数

将CollectionViewSource与GroupDescriptions结合使用时ListBox ScrollIntoView(即IsGrouping == True)

精简版

我想ListBox在选择更改时将项目滚动到视图中.

长版

我有一个ListBox与所述ItemsSource绑定到一个CollectionViewSource具有GroupDescription,按照下面的例子.

<Window.Resources>
    <CollectionViewSource x:Key="AnimalsView" Source="{Binding Source={StaticResource Animals}, Path=AnimalList}">
        <CollectionViewSource.GroupDescriptions>
            <PropertyGroupDescription PropertyName="Category"/>
        </CollectionViewSource.GroupDescriptions>
    </CollectionViewSource>  
</Window.Resources>

<ListBox x:Name="AnimalsListBox"ItemsSource="{Binding Source={StaticResource AnimalsView}}" ItemTemplate="{StaticResource AnimalTemplate}" SelectionChanged="ListBox_SelectionChanged">
    <ListBox.GroupStyle>
        <GroupStyle HeaderTemplate="{StaticResource CategoryTemplate}" />
    </ListBox.GroupStyle>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

SelectionChanged代码隐藏文件中有一个事件.

public List<Animal> Animals { get; set; }

private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ListBox control = (ListBox)sender;
    control.ScrollIntoView(control.SelectedItem);
}
Run Code Online (Sandbox Code Playgroud)

现在.如果我将其设置AnimalsListBox.SelectedItem为当前不可见的项目,我希望将其滚动到视图中.这就是它变得棘手的地方,因为ListBox群组(IsGrouped属性true)是ScrollIntoView失败的调用.

System.Windows.Controls.ListBox通过反射器.注意base.IsGrouping在 …

c# wpf

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

使用Git将夜间版本分发给工作室

精简版

需要每天早上向70多人分发每晚构建,想要使用git来平衡传输,并且在我开始设计系统之前想知道是否存在提示,陷阱或缺陷.

长版

每天早上我们都需要将我们的夜间版本分发给70多人(艺术家,测试人员,程序员,制作人员等)的工作室.到目前为止,我们已将构建复制到服务器并编写了一个同步程序来获取它(使用下面的Robocopy); 即使设置了镜像,传输速度也会慢得多,因为在高峰时间需要一个小时或更长时间才能同步(非高峰时间约为15分钟),这表明它是硬件I/O瓶颈.

我有一个很棒的(虽然绝对不是原创)想法是在整个工作室分配负载.在调查使用臭名昭着的bit-torrent协议编写客户端之后,我想到了另一个想法,我可以使用git作为设计,它可以让我们分发构建和修订管理,同时减少服务器的额外好处.

问题

  1. 你如何开始使用git?我有像PerforceSVN这样的集中式源控制系统的经验.阅读文档,似乎您需要做的就是运行git init path\\to\folder,然后在另一台机器上运行git clone url

  2. 我在哪里获得url上述git clone命令?我可以定义吗?我发现有一个网址奇怪的概念,因为git没有中央服务器 - 或者是这样吗?例如类似于一个比特洪流的跟踪器?

  3. 识别构建,使用变更列表编号或标签的更好选择是什么?

  4. 是否可以限制存储的修订数量?这将是有用的,因为除了夜间构建之外,我们还有一些我们想要分发的CI构建,但是无限数量修订无处不在.在Perforce中,您可以通过设置属性来限制修订.

c# git continuous-integration

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

将BlockUIContainer打印到XpsDocument/FixedDocument

  1. 如何打印具有的FlowDocument BlockUIContainer
  2. 如何在FlowDocument上强制执行度量/更新/排列?

背景

我生成FlowDocument了一段文本,其中Rectangle包含DrawingBrushes从资源字典和BlockUIContainer自定义控件填充的一些元素.

在任何的FlowDocument*的观察时,所述文档正确呈现控制无论其当文档被转换为固定文档/ XpsDocument,没有一个RectangleBlockUIContainer元素渲染.

我几乎可以肯定这是因为没有测量/安排控件,但是无法弄清楚如何在转换为XpsDocument之前强制执行.

  • 我已经LogicalTree递归地走过去做了以下事情,

    UIElement element = (UIElement)d;
    element.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
    element.Arrange(new Rect(element.DesiredSize));
    element.UpdateLayout();
    
    Run Code Online (Sandbox Code Playgroud)

    这里d是一个DependencyObject.我可以看到这在调试器中以break-pointed为单位设置ActualWidthActualHeight属性.

  • 我试图Dispatcher按照Will♦的建议强制渲染.

用于打印XpsDocument的代码

public class XpsDocumentConverter
{

    public static XpsDocumentReference CreateXpsDocument(FlowDocument document)
    {
        // Need to clone the document so that the paginator can work
        FlowDocument clonedDocument = DocumentHelper.Clone<FlowDocument>(document); …
Run Code Online (Sandbox Code Playgroud)

c# printing wpf xpsdocument flowdocument

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

我们使用什么字形?

什么是字形,我们使用它特别是在silverlight和xaml的上下文中?

silverlight wpf xaml glyph

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

用于GetLogicalProcessorInformation函数的PInvoke

我想通过c#/ PInvoke调用GetLogicalProcessorInformation函数,但是我坚持使用SYSTEM_LOGICAL_PROCESSOR_INFORMATIONstruct和CACHE_DESCRIPTORstruct.

我该如何定义这些结构以便正确使用?

主要表现在:
1.SYSTEM_LOGICAL_PROCESSOR_INFORMATION有工会在其定义
2. SYSTEM_LOGICAL_PROCESSOR_INFORMATION具有ULONGLONG在其定义
3. CACHE_DESCRIPTOR具有WORDDWORD在它的定义.

你能帮我解决这些问题吗?

c# windows cpu pinvoke

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

使用bittorrent协议分发夜间和CI构建

这个问题继续从我昨天的问题中学到的,即使用git分发夜间版本.

在上述问题的答案中,很明显git不适合我的需要,并鼓励使用BitTorrent重新检查.


精简版

需要每天早上向70多人分发每晚构建,想使用git BitTorrent来平衡转移.

长版

NB.如果您已阅读我之前的问题,可以跳过以下段落.

每天早上我们都需要将我们的夜间版本分发给70多人(艺术家,测试人员,程序员,制作人员等)的工作室.到目前为止,我们已将构建复制到服务器并编写了一个同步程序来获取它(使用下面的Robocopy); 即使设置了镜像,传输速度也慢得令人无法接受,因为它需要长达一个小时或更长时间才能在高峰时间同步(非高峰时间大约为15分钟),这表明它们是硬件I/O瓶颈和可能的网络带宽.

到目前为止我所知道的

到目前为止我发现了什么:

  • 我在维基百科上找到了关于BitTorrent协议的优秀条目,这是一个有趣的读物(我以前只知道种子如何工作的基础知识).在客户端 - 服务器握手之后,在BITFIELD交换机上也发现了这个StackOverflow应答.

  • 我还找到了MonoTorrent C#Library(GitHub Source),我可以用它来编写我们自己的跟踪器和客户端.我们不能使用现成的跟踪器或客户端(例如uTorrent).

问题

在我的初始设计中,我让我们的构建系统创建一个.torrent文件并将其添加到跟踪器.我会使用我们现有的构建镜像来超级种子.

使用这种设计,我是否需要为每个新构建创建一个新的.torrent文件?换句话说,是否有可能创建一个"滚动" .torrent,如果构建的内容只有20%的变化,那么需要下载才能获得最新的内容

......其实.在编写上述问题时,我认为我需要创建新文件,但是我可以下载到用户计算机上的相同位置,哈希将自动确定我已经拥有的内容.它是否正确?

回应评论

  1. 对于完全新鲜同步整个构建(包括:游戏,源代码,本地化数据,和光盘图像为PS3和X360)〜37000页的文件和在未来只是 50GB下.随着生产的继续,这将会增加.当只有2个其他同步发生时,这个同步需要29分钟才能完成,如果您认为在早上9点我们将有50多个想要获得最新的人,这个低峰值.

  2. 我们已经与IT部门调查了磁盘I/O和网络带宽; 结论是网络存储已经饱和.我们还将统计数据记录到同步数据库中,这些记录显示即使是少数用户,我们也会获得不可接受的传输速率.

  3. 如果不使用现成的客户端,在用户机器上安装uTorrent等应用程序是一个法律问题,因为可以使用该程序轻松下载其他项目.我们还希望有一个自定义工作流程来确定您想要获得哪个版本(例如,只有PS3或X360,具体取决于您桌面上的DEVKIT)以及可用的新版本的通知等.使用MonoTorrent创建客户端不是其中之一我很担心.

c# continuous-integration bittorrent

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

P4 Diff/P4 Folder Diff的键盘快捷键

我搜索了P4文档和知识库,我找不到是否有任何键盘快捷键来执行常见操作来分散文件.

我知道下一次和之前的更改(分别是CTRL+ 1CTRL+ 2),但是有更常见的操作.

那么,你知道有没有未记载的键盘快捷键吗?

例如:

  • 合并每行的更改(即,选择左侧或右侧的更改,或还原为基础).
  • 打开左侧或右侧进行编辑.

perforce keyboard-shortcuts p4v

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

如何在DrawingBrush中重新映射颜色?

假设我有一个DrawingBrush硬编码的三种颜色,即边框,前景和背景.

EventIcon

<!-- Resource -->
<DrawingBrush x:Key="EventIcon" Stretch="Uniform">
    <DrawingBrush.Drawing>
        <DrawingGroup>
            <DrawingGroup.Children>
                <GeometryDrawing Brush="#FF9200CE" Geometry="F1 M 51.2119,61.4688L 43.4193,61.4688L 43.4194,29.318L 27.8341,29.318L 27.834,61.4688L 20.0414,61.4688L 35.6267,77.1353L 51.2119,61.4688 Z "/>
                <GeometryDrawing Brush="#FFB400FF" Geometry="F1 M 44.4789,64.2014L 40.2667,64.2667L 40.13,29.318L 27.8341,29.318L 27.834,61.4688L 20.0414,61.4688L 33.8667,75.1467L 44.4789,64.2014 Z "/>
                <GeometryDrawing Geometry="F1 M 51.2119,61.4688L 43.4193,61.4688L 43.4194,29.318L 27.8341,29.318L 27.834,61.4688L 20.0414,61.4688L 35.6267,77.1353L 51.2119,61.4688 Z ">
                    <GeometryDrawing.Pen>
                        <Pen Thickness="2" StartLineCap="Round" EndLineCap="Round" LineJoin="Round" Brush="#FF3D0033"/>
                    </GeometryDrawing.Pen>
                </GeometryDrawing>
                <GeometryDrawing Brush="#FFFFFFFF" Geometry="F1 M 33.7559,53.2538L 32.6202,40.9989L 32.6202,35.3362L 37.3531,35.3362L 37.3531,40.9989L 36.2333,53.2538L 33.7559,53.2538 Z M 32.6202,59.6771L 32.6202,54.9442L 37.3531,54.9442L 37.3531,59.6771L 32.6202,59.6771 …
Run Code Online (Sandbox Code Playgroud)

wpf

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

System :: Drawing :: Bitmap的unsigned char*buffer

我正在尝试创建一个工具/资产转换器,使用FreeType2引擎将字体光栅化为XNA游戏的纹理页面.

下面,第一个图像是FreeType2] 1引擎的直接输出.第二个图像是尝试将其转换为a后的结果System::Drawing::Bitmap.

目标http://www.freeimagehosting.net/uploads/fb102ee6da.jpg currentresult http://www.freeimagehosting.net/uploads/9ea77fa307.jpg

任何关于这里发生的事情的提示/提示/想法将不胜感激.链接到解释字节布局和像素格式的文章也会有所帮助.

  FT_Bitmap *bitmap = &face->glyph->bitmap;

  int width = (face->bitmap->metrics.width / 64);
  int height = (face->bitmap->metrics.height / 64);

  // must be aligned on a 32 bit boundary or 4 bytes
  int depth = 8;
  int stride = ((width * depth + 31) & ~31) >> 3;
  int bytes = (int)(stride * height);

  // as *.bmp
  array<Byte>^ values = gcnew array<Byte>(bytes);  
  Marshal::Copy((IntPtr)glyph->buffer, values, 0, bytes);

  Bitmap^ systemBitmap = gcnew Bitmap(width, height, …
Run Code Online (Sandbox Code Playgroud)

c++-cli freetype freetype2 visual-c++

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

有效地同步大型Perforce存储库?

我很难从perforce服务器获取最新版本.仓库非常大,我不想做一个完整的结账,因为它会传说很长一段时间.相反,我将未版本化的源和依赖项放在工作区中并执行"p4 sync -k".这成功地对我的文件进行了版本,但它没有从服务器中带来新文件.

我怎样才能做到这一点 ?

perforce

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

在Debug.Assert语句中插入行号

我们用来Debug.Assert向开发人员发出代码中的问题.我想添加错误发生的行号,但不是硬代码,因为这可能会改变,我们会忘记更新字符串.

添加错误的行号会很方便.有任何想法吗?

.net c# debugging

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

在 PowerBI 报告中排除周末?

我在 Power BI 中有一个 VS Team Services 项目的燃尽图 - 这样我们就可以报告故事点而不是剩余的工作量。

在图表中,我在 X 轴上有日期。有没有办法从图表中过滤掉周末日期?周末没有活动。

我找到了这个论坛帖子,但是我不明白如何将其添加到我们的报告中。

powerbi

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