小编Jen*_*ens的帖子

WPF拉丝钢刷?

我正在寻找创造一个带有拉丝钢外观的WPF刷子的想法,类似于MacOSX Panther风格,最好不要求助于ImageBrush.有没有一种时髦的方法来使用GradientBrush来创建这种效果?

提前致谢!

c# wpf brush

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

如何可靠地获取计算机的板载网络适配器的MAC地址?

我试图(或多或少)唯一地识别系统以用于许可目的.我选择了计算机的板载网络适配器的MAC地址来执行此任务,因为我可以确定运行此软件的每个计算机实际上都有一个,这样可以避免在更换硬盘时重新激活.

但是,我遇到了可靠地识别板载网络适配器的麻烦.

使用"Win32_NetworkAdapterConfiguration"ManagementClass,我可以获得大量的MAC地址,包括我喜欢的地址,但是我没有找到区分板载和Windows或病毒扫描程序安装的虚拟适配器的方法.不过,这份清单似乎是有序的.我感兴趣的MAC地址(在我的机器上)列在其他(真实)网络适配器之前.(该列表按接口索引排序.)

使用NetworkInterface.GetAllNetworkInterfaces(),我想我可以通过过滤来识别真正的网络适配器.NetworkInterfaceType == NetworkInterfaceType.Ethernet,但是这个列表似乎是无序的(添加的网卡出现在板载之前).

首先使用第二种方法获取真实网卡的列表,然后按照第一个列表中的外观顺序对它们进行排序,这是一种可靠的方法来识别我正在寻找的MAC地址?第一个列表中的接口索引可以更改吗?我很乐意听到你的想法!

谢谢!

PS:我知道MAC地址可以很容易地改变,但我可以忍受.在插入WLAN棒后,我无法忍受不能使用该软件的客户=)

.net c# networking

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

Windows Phone 7 WPF的Pivot控件?

是否有可以由"普通"WPF项目使用的WP7枢轴控件的实现?我特别期待触摸支持和漂亮的过渡动画=).

.net wpf windows-phone-7

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

外观组中的条件如何在.NET正则表达式中工作?

使用正则表达式,特别是.NET风格的平衡匹配,我发现了一点,我意识到我不理解引擎的内部工作方式和我想的那样好.我会嘲笑我的模式为什么会这样做的任何输入!但拳头......

免责声明:这个问题纯粹是理论上的,这里获得的任何结果都不会被使用,或者在生产代码中被修改和使用来解析HTML.永远.我承诺.我确实害怕小马.=)

现在我的问题.我会尝试匹配这封信A,如果它没有先于#.为了演示,我总是使用字符串..A..#..A...在这里,第一个A应该匹配.当然,这是一个非常容易使用的任务"A(?<!^.*#.*)",但是我希望在这里使用条件,因为它们可以用于平衡匹配和其他很酷的东西.

我尝试的是

"A(?<=^(#(?<q>)|[^#])*(?(q)(?!)))"
Run Code Online (Sandbox Code Playgroud)

我解释它的方式是:当引擎遇到"A"时,它返回到字符串的开头,并且如果字符是#,则对于每个字符向捕获组q添加空匹配.如果q包含匹配,它应该失败.我不明白的是为什么这个表达式匹配我的样本字符串中的As.

当我简单地删除lookbehind并匹配整个字符串时,这有效:

"^(#(?<q>)|[^#])*(?(q)(?!))A"
Run Code Online (Sandbox Code Playgroud)

匹配整个字符串直到第一个A,即使第一个组的量词是贪婪的.在开头插入"#"也会导致匹配失败(根据需要).

所以:如何环顾群体,在其中命名捕捉群体和条件一起玩?

谢谢!

编辑:这个问题可以更容易看到(?<=(?<q>)(?(q)(?!))).,它不应该匹配任何字符,但匹配一切.

c# regex theory

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

使用.NET正则表达式进行乘法运算

本着polygenelubricants努力用正则表达式做傻事的精神,我目前试图让.NET正则表达式引擎为我倍增.

当然,这没有实际价值,而是纯粹的理论练习.

到目前为止,我已经到了这个怪物,应该检查1的数量乘以2的数量是否等于字符串中3的数量.

Regex regex = new Regex(
@"
^
(1(?<a>))*  # increment a for each 1
(2(?<b>))*  # increment b for each 2
    (?(a)   # if a > 0
        (                   
            (?<-a>)             # decrement a
            (3(?<c-b>))*        # match 3's, decrementing b and incrementing c until
                                # there are no 3's left or b is zero
            (?(b)(?!))          # if b != 0, fail
            (?<b-c>)*           # b = c, c = 0
        )
    )*      # repeat
(?(a)(?!))  # …
Run Code Online (Sandbox Code Playgroud)

.net c# regex theory

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

控制不透明

控制是否可以半透明?

c# winforms

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

如何避免"动态"事件订阅中的匿名方法?

我怎么能重构这个方法

private void ListenToPropertyChangedEvent(INotifyPropertyChanged source,
                                          string propertyName)
{
    source.PropertyChanged += (o, e) =>
    {
        if (e.PropertyName == propertyName)
            MyMagicMethod();
    };
}
Run Code Online (Sandbox Code Playgroud)

如果我想避免在这里使用匿名方法?

c# anonymous-methods

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

ListBox触摸滚动性能

我的问题

我在为嵌入式设备开发触控友好UI时遇到问题.使用WPF 4.0中的标准ListBox,它支持触摸事件和触摸滚动开箱即用,触摸滚动性能比通过用鼠标拉动滚动条滚动更糟糕.最值得注意的是,当开始滚动轻弹时,滚动停顿的时间只有几分之一秒,但足以感觉不好并使轻弹几乎无法使用(当口吃停止时手势完成,导致没有或最小响应).作为参考,我在Windows资源管理器中使用了触摸滚动,它没有问题并且反应平稳.

为什么ListBox的触摸滚动比使用鼠标滚动要差得多,并且在浏览器中触摸滚动?

我的测试代码

<ListBox x:Name="listBox"
         ScrollViewer.CanContentScroll="False">
    <ListBox.ItemTemplate>
        <DataTemplate DataType="{x:Type Brush}">
            <StackPanel Orientation="Horizontal">
                <Rectangle Width="100"
                            Height="100"
                            Fill="{Binding}" />
                <TextBlock Text="{Binding Color}" FontSize="36" Margin="20"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>            
</ListBox>
Run Code Online (Sandbox Code Playgroud)

ItemsSource设置为IEnumerable<Brush>包含System.Windows.Media.Brushes中的所有141个画笔.

我尝试了什么

我玩过一些配置选项但没有用.我试过了

  • VirtualizingStackPanel.IsVirtualizing 无论是真是假
  • 将刷子数量减少到20个
  • 将ItemsPanel显式设置为VirtualizingStackPanel
  • ScrollViewer.CanContentScroll="True" (当时难以jugde,但我认为问题仍然存在)

由于鼠标滚动很好,我真的没有想到这些可以帮助任何,但是..好吧......我试过了.=)

c# wpf listbox .net-4.0

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

在ASP.NET web.config全球标记中设置日期格式?

在我们的web.config中,我使用以下标记来确定ASP.NET网站的界面语言.

<globalization
   enableClientBasedCulture="true"        
   culture="auto:en-GB"
   uiCulture="auto:en"/>
Run Code Online (Sandbox Code Playgroud)

这按预期工作:客户端请求特定的本地化获取它,其他人都很高兴地看着en-GB设置.

由于公司政策,我需要为每个人将日期格式更改为ISO 8601标准格式(YYYY-MM-DD).这可能在web.config的中心位置,还是我需要在每个实例中手动更改?

另外:在将界面限制为英语时,是否可以获得此日期格式?

asp.net globalization date

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

更改ViewModel的视图

我正在尝试为mt WPF应用程序实现MVVM设计模式.为了将视图连接到视图模型,我使用了一个ResourceDictionary(用于Application.Resources),看起来像

<DataTemplate DataType={x:Type viewmodel:SampleViewModel}>
    <view:SampleView1 />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

然后将视图模型简单地放入内容演示者中以显示它们.

现在,当用户按下按钮时,我想SampleViewModel使用不同的视图显示.如何更改用于的数据模板SampleViewModel

c# wpf mvvm

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