请考虑以下代码:
client.Send(data, data.Length, endpoint);
byte[] response = client.Receive(ref endpoint);
Run Code Online (Sandbox Code Playgroud)
虽然根据WireShark(网络嗅探器),远程主机确实回复数据,但这里的应用程序只是永远等待数据......由于某种原因,它没有从远程主机接收答案.
有任何想法吗?
我想知道是否有任何有用的(免费)库来帮助开发控制台应用程序.
只是一个简单的例子:
如果一个库封装了在控制台应用程序中选择文件的所有行为(也就是控制台应用程序的OpenFileDialog).
当然有MonoCurses,但我想知道是否还有其他?
日Thnx. 更新: 我知道你当然可以简单地使用OpenFileDialog.但我在谈论纯控制台应用程序.没有Windows窗体或WPF元素.纯粹的控制台.(例如,在没有图形用户界面的Linux系统上运行).
我想知道是否有人知道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)
当然它可以改进,但我真的对其他人想出的东西感兴趣.
我正在尝试为WPF和Silverlight交叉编译一些库.目前,其中一个库依赖于Silverlight中不可用的System.Drawing.Bitmap.
它是一个表示设备特定图像格式的类,并保存对Bitmap实例的引用,以便在WPF应用程序中显示此图像.
我可以使用什么代替Bitmap类来保存对我可以在silverlight和wpf中显示的Image的引用?(不能基于文件,必须在内存中).
我们在解决方案中有大量项目,主要是简单的类库(后来通过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项目中我想创建这些文件的链接.
关于在运行时加载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.
我不知道一个更好的头衔,但我会描述这个问题.
我们使用的硬件具有显示图像的能力.它可以显示分辨率为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)
这里有两个问题:
所以我需要一种方法:
我发现你可以将像素深度设置为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) 以下面的例子为例,
我上课了
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#的搜索引擎支持很糟糕)
我有一些常常需要从串行接口(例如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) 我正在使用的其中一个库在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# ×6
.net ×4
silverlight ×3
bitmap ×2
f# ×2
wpf ×2
xaml ×2
behavior ×1
compilation ×1
console ×1
drawing ×1
graphics ×1
networking ×1
performance ×1
serial-port ×1
sockets ×1
udpclient ×1