小编Tim*_*hyP的帖子

在Send()之后的UdpClient,Receive()不起作用?

请考虑以下代码:

client.Send(data, data.Length, endpoint);
byte[] response = client.Receive(ref endpoint);
Run Code Online (Sandbox Code Playgroud)

虽然根据WireShark(网络嗅探器),远程主机确实回复数据,但这里的应用程序只是永远等待数据......由于某种原因,它没有从远程主机接收答案.

有任何想法吗?

c# sockets networking udpclient

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

.NET控制台应用程序是否有任何有用的库?

我想知道是否有任何有用的(免费)库来帮助开发控制台应用程序.

只是一个简单的例子:

如果一个库封装了在控制台应用程序中选择文件的所有行为(也就是控制台应用程序的OpenFileDialog).

当然有MonoCurses,但我想知道是否还有其他?

日Thnx. 更新: 我知道你当然可以简单地使用OpenFileDialog.但我在谈论纯控制台应用程序.没有Windows窗体或WPF元素.纯粹的控制台.(例如,在没有图形用户界面的Linux系统上运行).

.net c# console

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

混合行为(Silverlight 4)

我想知道是否有人知道Blend/Silverlight 4的任何好(免费)行为

具体来说,我正在寻找一种行为,我可以放在TextBlock上使其水平滚动或行为将"闪烁"TextBlock中的文本(闪烁文本).但我很想知道你一直在使用或了解的任何行为.

举个例子,我有一个非常基本的"闪烁文本"行为

public class FlashTextBehavior : Behavior<TextBlock>
{
    Timer flashTimer;

    public FlashTextBehavior()
    {

    }

    protected override void OnAttached()
    {
        base.OnAttached();
        flashTimer = new Timer(new TimerCallback((o) => 
        {
            Dispatcher.BeginInvoke(() =>
            {
                if (AssociatedObject.Visibility == Visibility.Visible)
                    AssociatedObject.Visibility = Visibility.Collapsed;
                else
                    AssociatedObject.Visibility = Visibility.Visible;
            });               
        }), null, 0, 750);
    }

    protected override void OnDetaching()
    {
        if (flashTimer != null)
            flashTimer.Dispose();

        base.OnDetaching();
    }
}
Run Code Online (Sandbox Code Playgroud)

当然它可以改进,但我真的对其他人想出的东西感兴趣.

silverlight xaml behavior expression-blend

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

替代Silverlight中的System.Drawing.Bitmap,它与WPF兼容

我正在尝试为WPF和Silverlight交叉编译一些库.目前,其中一个库依赖于Silverlight中不可用的System.Drawing.Bitmap.

它是一个表示设备特定图像格式的类,并保存对Bitmap实例的引用,以便在WPF应用程序中显示此图像.

我可以使用什么代替Bitmap类来保存对我可以在silverlight和wpf中显示的Image的引用?(不能基于文件,必须在内存中).

silverlight wpf compatibility bitmap

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

在VS2010中交叉编译.NET 4和Silverlight 4,无需复制文件

我们在解决方案中有大量项目,主要是简单的类库(后来通过MEF加载),目标是.NET 4.0.

我们希望为.NET 4.0和Silverlight运行时编译大量这些文件而不复制文件.

有没有办法创建一个新的Silverlight类库并链接其他项目的源文件,以便编译.NET 4.0库和Silverlight 4.0库?

我知道.NET 4.0可以加载silverlight 4程序集,但我想编译两个版本而不是为Silverlight编译所有内容.

更新: 我看到一个解决方案,其中一些项目包含其他项目中其他文件的链接,因此当您在一个项目中更改文件时,它也会在另一个项目中更新.这就是我的意思.

alt text http://i31.tinypic.com/33esow4.png

该解决方案的截图,Vialis.Led.Interfaces项目包含原始文件,在silverlight项目中我想创建这些文件的链接.

.net silverlight compilation visual-studio-2010

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

在运行时将XAML加载到控件中并使用控件的资源

关于在运行时加载XAML有很多问题,但到目前为止我可以说这不是重复.

我在运行时将XAML加载到控件中:

<ContentControl Content="{Binding Layout.View, Converter={StaticResource StringToXamlConverter}}"/>
Run Code Online (Sandbox Code Playgroud)

转换器很简单:

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    string xaml;
    if (value != null)
    {
        xaml = value.ToString();
    }
    else
    {
        xaml = Settings.Default.DefaultLayoutView;
    }

    var root = XamlReader.Parse(xaml);
    return root;
}
Run Code Online (Sandbox Code Playgroud)

现在,在正在加载的XAML中,我需要使用ValueConverters.转换器被定义为加载XAML的Window的资源.例如:

<c:BooleanToVisibilityValueConverter x:Key="BooleanToVisibilityConverter"/>
Run Code Online (Sandbox Code Playgroud)

当然,如果我尝试使用此资源,则XamlReader.Parse()方法会抛出异常,因为在阅读时它不可用.

Visibility="{Binding Layout.TextItem1.IsEnabled, Converter={StaticResource BooleanToVisibilityConverter}}"
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?也许是告诉XamlReader忽略这个的一种方法?或者可能在这种情况下工作的ValueConverters的替代方案?

请注意,使用DynamicResource也不起作用.它们不能用于ValueConverters.

c# wpf xaml

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

读取单色位图像素颜色

我不知道一个更好的头衔,但我会描述这个问题.

我们使用的硬件具有显示图像的能力.它可以显示分辨率为64 x 256的黑白图像.

问题是我们必须发送到设备的图像格式.它不是标准的位图格式,而是一个代表图像每个像素的字节数组.

0 =黑色,1 =白色.

因此,如果我们有一个大小为4 x 4的图像,则字节数组可能如下所示:

1000 0100 0010 0001

图像看起来像:

位图http://www.mediafire.com/imgbnc.php/6ee6a28148d0170708cb10ec7ce6512e4g.jpg

问题是我们需要通过在C#中创建单色位图来创建此图像,然后将其转换为设备可以理解的文件格式.

例如,可以在设备上显示文本.为此,他必须创建一个位图并向其写入文本:

var bitmap = new Bitmap(256, 64);

using (var graphics = Graphics.FromImage(bitmap))
{
    graphics.DrawString("Hello World", new Font("Courier", 10, FontStyle.Regular), new SolidBrush(Color.White), 1, 1);
}
Run Code Online (Sandbox Code Playgroud)

这里有两个问题:

  1. 生成的位图不是单色的
  2. 生成的位图具有不同的二进制格式

所以我需要一种方法:

  1. 在.NET中生成单色位图
  2. 读取位图中每个像素的各个像素颜色

我发现你可以将像素深度设置为16,24或32位,但没有找到单色,我不知道如何读取像素数据.

欢迎提出建议.

更新:我不能使用Win32 PInvokes ...必须是平台中立的!

关注:以下代码现在适用于我.(以防任何人需要)

private static byte[] GetLedBytes(Bitmap bitmap)
{
    int threshold = 127;
    int index = 0;
    int dimensions = bitmap.Height * bitmap.Width;

    BitArray bits = new …
Run Code Online (Sandbox Code Playgroud)

.net c# graphics drawing bitmap

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

列表中所有项目的特定属性的总和

以下面的例子为例,

我上课了

public class SomeItem
{
    public string Name;
    public DateTime Published;
    public uint16 Size;
}
Run Code Online (Sandbox Code Playgroud)

我有一个List<SomeItem>,我想计算所有项目的总大小.
在C#我只是写

var totalSize = items.Sum((i) => i.Size);
Run Code Online (Sandbox Code Playgroud)

我已经看了F#中的List函数,但是他们总是抱怨类型.

你会怎么用F#写这个?

(我尝试过搜索引擎,但对F#的搜索引擎支持很糟糕)

f#

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

System.IO.Ports.SerialPort和多线程

我有一些常常需要从串行接口(例如COM1)读取数据的SerialPort代码.但这似乎是CPU密集型的,如果用户移动窗口或者正在向窗口显示大量数据(例如通过串行线路接收的字节),那么通信就会搞砸.

考虑以下代码:

void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{

byte[] buffer = new byte[port.ReadBufferSize];

var count = 0;

try
{
    count = port.Read(buffer, 0, buffer.Length);
}
catch (Exception ex)
{
    Console.Write(ex.ToString());
}

if (count == 0)
    return;

//Pass the data to the IDataCollector, if response != null an entire frame has been received


var response = collector.Collect(buffer.GetSubByteArray(0, count));

if (response != null)
{
    this.OnDataReceived(response);
}
Run Code Online (Sandbox Code Playgroud)

需要收集代码,因为数据流是恒定的,并且必须分析数据(帧/分组).

    port = new SerialPort();

    //Port configuration code here...

    this.collector = dataCollector;

    //Event handlers
    port.DataReceived += …
Run Code Online (Sandbox Code Playgroud)

.net c# performance serial-port

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

将F#中的对象传递给C#方法并将其作为out参数不起作用?

我正在使用的其中一个库在C#中定义了这个:

public ushort GetParameterSet(string name, out ParameterSet parameterSet)
Run Code Online (Sandbox Code Playgroud)

我试图用F#调用它:

let parameterSet = new ParameterSet();
let retVal = currentPanel.GetParameterSet(name, ref parameterSet);
Run Code Online (Sandbox Code Playgroud)

但是,即使在C#方法中将parameterSet设置为具有有效数据的该类的实例,它也不会在F#中更改.

我在这里错过了什么?

c# f# pass-by-reference

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