小编Phi*_*ght的帖子

更快的方法来创建重复的Virtual PC图像?

我使用Virtual PC创建新的环境来测试我的安装程序.但我必须做错事,因为内置Vista或XP的VPC图像占用大约15GB的磁盘空间(包括安装在其中的VS2005/S2008).

要创建用于测试的新副本,我复制并粘贴其中包含.vhd,.vmc和.vsv文件的文件夹.使用新的VPC图像进行测试后,我删除该复制的文件夹.这可行,但每次复制15GB需要花费很长时间.有没有更快/更有效的方法?

virtual-pc

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

测试Dart值是否实际上是一个函数?

是否可以测试值是否是可以调用的函数?我可以轻松地测试null,但之后我不知道如何确保传入的参数实际上是一个函数?

void myMethod(funcParam)
{
   if (funcParam != null)
   {
       /* How to test if funcParam is actually a function that can be called? */
       funcParam();
   }
}
Run Code Online (Sandbox Code Playgroud)

types function dart

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

你能改变Silverlight下载指示图形吗?

下载Silverlight应用程序时,您将获得百分比文本以及围绕它移动的蓝点作为进度指示器.是否可以将其修改为具有自定义进度指示器?拥有与将运行的应用程序主题匹配的东西会很不错.

silverlight

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

可以压缩Silverlight下载以加快下载速度吗?

当Silverlight在您的应用程序中下载程序集时,可以将它们作为压缩文件下载,然后在运行之前解压缩它们吗?这将加快大型应用程序的下载时间.

silverlight

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

有人知道用于使用生成单元格对Grid列进行大小调整的算法吗?(WPF)

当您的子元素始终包含在单个网格单元格中时(即没有列/行跨越),使用WPF网格控件很容易.固定宽度的列保持所请求的固定宽度,自动列的大小确实与列中最宽的单元格一样宽.星列根据其相对星值共享任何剩余空间.一切都很简单.

但是一旦你有一个跨越两列或更多列的单元格,列的宽度变得更加复杂,并且实际上看起来反直觉.这是我的意思的一个简单例子.我们可以定义两列,第一列为auto,第二列为30像素.

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)

现在我们定义一个跨越两列的按钮,恰好以80像素宽度进行测量.(在我的机器上使用我的字体和主题设置等...)

<Button Grid.ColumnSpan="2" Content="QWERTYUIOP"/>
Run Code Online (Sandbox Code Playgroud)

我们需要在两个生成列上分配按钮的80像素宽度.鉴于第二列固定为30,我预计将为该列分配30,剩余的50将转到第一列.因为第一列是自动的,所以看起来很明显.

但不是.如果你在实践中尝试这个,你会发现第一列是0像素而第二列已经变成完整的80.即使第二列被定义为固定,因此不应该变得更大,它会拉伸到整个宽度的按钮.也许我在这里遗漏了一些东西,但这对我来说似乎不合逻辑.

所以对我的实际问题.是否对Grid控件用于执行此计算的逻辑有完整描述,以便我可以完全理解它是如何工作的?我搜索过MSDN和Google,但没有找到任何描述生成元素如何影响列宽的内容.

wpf grid

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

如何跟踪任何子控件何时获得或失去WinForms的焦点?

我有一个Windows窗体自定义控件,它像一个面板,它可以包含任意数量的子窗口.子控件的数量和类型是在运行时确定的,因此我需要以通用方式工作,而不知道可能存在或可能不存在的确切子控件.

我想根据面板是否包含焦点来改变面板的背景颜色.因此,如果面板的孩子(或面板的孩子的孩子等......)获得焦点我想知道这一点,所以我可以更新自定义面板的背景颜色.当焦点转移到不在子层次结构中的某些东西时,我也需要知道所以我可以恢复到原始背景颜色.

Control.ContainsFocus非常适合告诉我面板是否包含子层次结构中的焦点,但我需要知道何时发生更改.目前我只能提出以下不良机制.

我挂钩每个孩子的GotFocus/LostFocus和每个孩子的每个孩子等.我还必须挂钩ControlAdded/ControlRemoved以确保我与可能的改变孩子hieararchy保持同步.正如你所看到的,这可能最终导致很多事件挂钩,我怀疑必须有一个更简单的方法.有任何想法吗?

.net focus winforms

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

自定义绘制Aero标题栏,无需扩展到客户区

我的WinForms应用程序在Vista/Windows 7上具有标准的Aero玻璃外观.

我想自定义绘制窗口标题栏,以便使用玻璃最小/最大/关闭按钮保留Aero玻璃外观,但没有标题文本和窗口图标.我通过覆盖WM_NCPAINT尝试了这一点,但是重写此事件总是会导致玻璃被移除.

有没有人知道如何用玻璃覆盖WM_NCPAINT以便有效地正确地绘制玻璃区域?

aero winforms aero-glass

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

具有整数约束的C#泛型方法拒绝从整数强制转换为泛型类型

如果我有一个被限制为类型'int'的泛型方法,那么我当然应该能够将一个整数转换为泛型T类型.例如...

    public T ExampleMethod<T>(int unchanged) where T : int
    {
        return (T)unchanged;
    }
Run Code Online (Sandbox Code Playgroud)

...编译器抱怨无法将类型'int'转换为'T',但我有一个约束,表明目标是整数.那肯定应该有用吗?

更新:

实际情况是我想要一个返回枚举值的辅助方法.所以我理想的助手方法会更像这样....

public T GetAttributeAsEnum<T>(XmlReader reader, string name) where T : enum
{
    string s = reader.GetAttribute(name);
    int i = int.Parse(s);
    return (T)i;
}
Run Code Online (Sandbox Code Playgroud)

......并像这样使用它......

StateEnum x = GetAttributeAsEnum<StateEnum>(xmlReader, "State");
CategoryEnum y = GetAttributeAsEnum<CategoryEnum>(xmlReader, "Category");
OtherEnum z = GetAttributeAsEnum<OtherEnum>(xmlReader, "Other");
Run Code Online (Sandbox Code Playgroud)

......但你无法通过枚举来约束.

c# generics

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

Setter.TargetName不适用于BasedOn设置中的元素

我有很多PathGeometry实例,可以为不同的按钮绘制各种图形.所以我创建了一个按钮类型来显示Path,然后根据按钮状态更新Path.Stroke.所以在禁用时显示为灰色,鼠标结束时显示不同的颜色.标准的东西......

<Style x:Key="BasePathButton" TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border Name="Border"
                    <Path x:Name="Path" />
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter TargetName="Path" Property="Stroke" Value="Gray"/>
                    </Trigger>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter TargetName="Path" Property="Stroke" Value="Green"/>
                    </Trigger>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter TargetName="Path" Property="Stroke" Value="Red"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

但显然我需要为每个按钮实例使用不同的Path.Data.所以我创建了一个用于设置Path.Data的BasedOn样式,就像这样......

<Style x:Key="NLB" TargetType="{x:Type Button}" BasedOn="{StaticResource BasePathButton}">
    <Setter TargetName="Path" Property="Data" Value="{StaticResource LeftPathGeometry}"/>
</Style>
Run Code Online (Sandbox Code Playgroud)

...但是失败了,发现无法找到TargetName ="Path"的错误.任何想法如何解决这一问题?或者也许是一种更好的方法来创建一个具有Path的按钮,该Path使用要使用的几何参数化?

wpf styles button pathgeometry

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

使用包含标志的值数组(splatting)调用cmdlet

我正在调用start-process命令传递一组值...

$args = @{
    FilePath = "c:\myapp.exe"
    RedirectStandardOutput = "c:\output.txt"
};

start-process @args;
Run Code Online (Sandbox Code Playgroud)

...这工作正常,但我现在想要将Wait标志添加到start-process的参数中,但是当它不需要赋值给它时,如何将它添加到$ args数组中...

$args = @{
    Wait = ?
    FilePath = "c:\myapp.exe"
    RedirectStandardOutput = "c:\output.txt"
};
Run Code Online (Sandbox Code Playgroud)

我想坚持将参数作为数组传递,因为它们可以传递给一个例程,这个参数很适合我参与进程.

arrays powershell

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