小编Mar*_*ath的帖子

Windows 7欧洲版开发的意义

显然在欧洲,微软计划在没有安装IE8的情况下发布Windows 7.我作为开发人员的许多商业应用都以某种方式使用了IE,所以我担心我们是否需要安装IE8作为我们的应用程序安装的一部分.

这是否意味着应用程序使用...

  • WindowsForms WebBrowser组件
  • WPF WebBroswer控件
  • 没有触摸部署
  • IE作为ActiveX控件
  • XPS Viewer
  • 可能是其他开发人员API的/ COM组件?

...将不再在欧洲的Win 7上开箱即用?或者让MS找到一种偷偷摸摸的方式将核心IE组件留在操作系统中,然后删除了"浏览器"应用程序?

internet-explorer windows-7

4
推荐指数
2
解决办法
169
查看次数

在Silverlight的ContentPresenter中将样式应用于TextBlocks

如果我定义了以下样式:

<UserControl.Resources>
    <Style TargetType="TextBlock" x:Key="ProblemStyle">
        <Setter Property="FontSize" Value="40"/>
        <Setter Property="FontWeight" Value="Bold"/>
    </Style>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

然后,当我将ContentPresenter数据绑定到字符串时,在WPF中我可以使用以下XAML根据需要设置文本样式:

<ContentPresenter Content="{Binding Problem}">
    <ContentPresenter.Resources>
        <Style TargetType="TextBlock" BasedOn="{StaticResource ProblemStyle}" />
    </ContentPresenter.Resources>
</ContentPresenter>
Run Code Online (Sandbox Code Playgroud)

但是,在Silverlight中,这不起作用.有没有办法适用于两者?

silverlight wpf styles textblock contentpresenter

4
推荐指数
2
解决办法
5583
查看次数

使用ClickOnce应用程序的用户文件的位置

我有一个WinForms应用程序,我试图用ClickOnce部署.它包含一个可执行文件和一个依赖的dll,以及一个名为"Map"的文件夹中的一堆松散的xml文件.xml文件似乎在生成的clickonce包中都存在且正确,并且都包含在.manifest文件中.

但是,当我安装并运行时,使用以下代码给我一个目录未找到异常:

string appPath = Path.GetDirectoryName(Application.ExecutablePath);
string mapPath = Path.Combine(appPath, "Maps");
foreach (string xmlFile in Directory.GetFiles(mapPath, "*.xml"))
Run Code Online (Sandbox Code Playgroud)

当我查看"appPath"(即C:\Users\Mark\AppData\Local\Apps\2.0\0H6ZLXXN.30V\3TNO49OJ.8JH\midi..tion_5194807c0e95e913_0000.0004_b9d52c73fd4d58ad\)时,有app可执行文件和dll,但Maps文件夹不存在.

我究竟做错了什么?这是用我的应用程序捆绑额外文件的正确方法吗?我实际上希望Maps文件夹能够在某个地方用户轻松访问并添加自己的文件.

clickonce winforms

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

使用NAudio解码mu-law音频

我正在尝试使用NAudio将mu-law编码的音频解码为pcm音频。我的服务发布了原始mu-law编码的音频字节,并且我从NAudio收到一个错误,即数据没有RIFF标头。我需要以某种方式添加它吗?我使用的代码是:

WaveFileReader reader = new WaveFileReader(tmpMemStream);
using (WaveStream convertedStream = WaveFormatConversionStream.CreatePcmStream(reader))
{
    WaveFileWriter.CreateWaveFile(recordingsPath + "/" + outputFileName, convertedStream);
}
Run Code Online (Sandbox Code Playgroud)

我还将原始数据保存到磁盘,并在Matlab中进行解码,这没有问题。谢谢。

.net c# audio naudio

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

我可以在ASP.NET MVC 4中更改webpages_ Membership表名前缀吗?

我正在创建一个ASP.NET MVC 4网站,并使用默认项目模板在我的数据库中自动生成一些表以获取成员资格.例如:

  • webpages_Membership
  • webpages_Roles

等等

因为我可能想要将一个数据库用于多个网站,我想将"webpages_"前缀替换为该网站特有的内容,但我找不到这个配置的位置.如何在ASP.NET MVC 4中更改此设置?

asp.net-mvc asp.net-membership

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

为什么有些wav文件在我的c#directsound应用程序中播放,但有些则没有?

我有ac#应用程序通过directsound播放简单的wav文件.根据我的测试数据,代码运行良好.但是,当我使用真实数据时,它在创建辅助缓冲区时产生了一个非常无用的错误:"ArgumentException:Value不在预期范围内."

测试wavs具有512kbps比特率,16比特音频样本大小和32kHz音频采样率.新的wavs分别为1152kbps,24bit和48kHz.如何让directsound处理这些更大的值,或者如果不能在尝试播放文件之前如何以编程方式检测这些值?

它是托管DirectX v9.00.1126我正在使用,我在下面提供了一些示例代码:

using DS = Microsoft.DirectX.DirectSound;  
...  
DS.Device device = new DS.Device();
device.SetCooperativeLevel(this, CooperativeLevel.Normal);  
...
BufferDescription bufferDesc = new BufferDescription();
bufferDesc.ControlEffects = false;  
...
try
{
    SecondaryBuffer sound = new SecondaryBuffer(path, bufferDesc, device);
    sound.Play(0, BufferPlayFlags.Default);
}
...
Run Code Online (Sandbox Code Playgroud)

附加信息:现实世界的wav文件也不会在Windows媒体播放器中播放,告诉我播放文件需要一个编解码器,而它们在winamp中播放得很好.

附加信息2:比较工作测试数据的字节和糟糕的现实世界数据,我可以看到,通过RIFF块,坏数据有一个"bext"块,互联网通知我是与广播相关的元数据音频扩展,而测试数据直接进入fmt块.坏数据中有/一个fmt块,所以我不知道它是否格式错误,或者加载器是否应该进一步寻找fmt数据.我可以看看是否可以从提供数据的人那里获得关于此rouge bext chunk的一些信息 - 如果他们可以删除它,我的代码可能仍然有用.

c# directx audio directsound

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

如何在许多设备上同时播放声音

我想同时在三个外部声卡中播放声音,我的意思是当我点击一个按钮时,我可以听到三个扬声器发出的与我的三张声卡有关的声音.我有一个功能,但它只在一个设备中播放声音,它找到的第一个设备,我的意思是在这个代码中第一个设备是数字0,所以它在其中播放声音,但如果你首先写设备号1,它将在其中播放声音,作为结论它只在一个设备中播放声音,它不能同时适用于所有设备.这是它的代码:

public void playAllAvailableDevices()
{
//create a new class for each wav file & output etc.
WaveOut waveOut1 = new WaveOut();
WaveFileReader waveReader1 = new WaveFileReader(fileName);
WaveOut waveOut2 = new WaveOut();
WaveFileReader waveReader2 = new WaveFileReader(fileName);
WaveOut waveOut3 = new WaveOut();
WaveFileReader waveReader3 = new WaveFileReader(fileName);

switch (waveOutDevices)
{
case 1: 
waveOut1.Init(waveReader1);
waveOut1.DeviceNumber = 0;
waveOut1.Play();
break;
case 2: 
waveOut1.Init(waveReader1);
waveOut1.DeviceNumber = 0;
waveOut1.Play();

waveOut2.Init(waveReader2);
waveOut2.DeviceNumber = 1;
waveOut2.Play();
break;
case 3:
waveOut1.Init(waveReader1);
waveOut1.DeviceNumber = 0;
waveOut1.Play();

waveOut2.Init(waveReader2);
waveOut2.DeviceNumber = …
Run Code Online (Sandbox Code Playgroud)

c# audio naudio

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

试图了解 C# 中关于 NAudio 的缓冲区

我是一名化学专业的学生,​​试图在 C# 中使用 NAudio 从我的计算机麦克风收集数据(计划稍后切换到音频端口,以防这与如何回答有关)。我了解源流是什么,以及 NAudio 如何使用事件处理程序来知道是否开始从所述流中读取信息,但是在处理从流中读取的数据时,我感到很困惑。据我了解,缓冲区数组是从源流中以字节或 WAV 格式填充的(使用 AddSamples 命令)。现在,我要做的就是填充缓冲区并将其内容写入控制台或进行简单的可视化。我似乎无法从缓冲区中获取我的值,并且我尝试将其视为 WAV 和字节数组。有人可以帮助我了解 NAudio 如何从头开始工作,以及如何从缓冲区中提取数据并将其存储为更有用的格式(即双精度)?这是我迄今为止处理 NAudio 及其附带的所有代码的代码:

public NAudio.Wave.BufferedWaveProvider waveBuffer = null; // clears buffer 

NAudio.Wave.WaveIn sourceStream = null; // clears source stream

public void startRecording(int samplingFrequency, int deviceNumber, string fileName)
{       
    sourceStream = new NAudio.Wave.WaveIn(); // initializes incoming audio stream
    sourceStream.DeviceNumber = deviceNumber; // specifies microphone device number 
    sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(samplingFrequency, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels); // specifies sampling frequency, channels

    waveBuffer = new NAudio.Wave.BufferedWaveProvider(sourceStream.WaveFormat); // initializes buffer

    sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable); …
Run Code Online (Sandbox Code Playgroud)

c# naudio

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

正则表达式以.cs结尾但不在.g.cs中的字符串

我需要一个匹配所有以.cs结尾的字符串的正则表达式,但如果它们以.g.cs结尾则不匹配.我正在使用.NET正则表达式.

.net regex

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

Thread.Join在多个线程上超时

我有一个线程数组,我想加入它们所有的超时(即看看它们是否都在一定的超时内完成).我正在寻找等同于WaitForMultipleObjects的东西或者将线程句柄传递给WaitHandle.WaitAll的方法,但我似乎无法在BCL中找到任何我想要的东西.

我当然可以遍历所有线程(见下文),但这意味着整个函数可能需要超时*threads.Count才能返回.

private Thread[] threads;

public bool HaveAllThreadsFinished(Timespan timeout)
{
     foreach (var thread in threads)
     {
        if (!thread.Join(timeout))
        {
            return false;
        }                
     }
     return true;
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading

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

.NET中是否有包含单个EventHandler的标准接口

有这样的.NET框架接口吗?

public interface IEvent
{
    event EventHandler Event;
}
Run Code Online (Sandbox Code Playgroud)

我当然可以写自己的,但如果已经存在,我会重复使用它.也许也可以使用Fire/Raise方法.

.net c# design-patterns

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

使在 MSBuild 目标中创建的 ItemGroup 可用于调用目标

如果我的 MSBuild 文件中有以下目标:

<Target Name="Temp">
   <CallTarget Targets="CreateTestList" />
   <Message Text="TestList: -- @(TestAssembly) -- " />
   <Message Text="Testing &quot;%(TestAssembly.Identity)&quot;" />
</Target>   

<Target Name="CreateTestList">
     <CreateItem Include="**\bin\$(Configuration)\*Tests.dll">
          <Output TaskParameter="Include" ItemName="TestAssembly" />
     </CreateItem>
     <Message Text="TestList: -- @(TestAssembly) -- " />
     <Message Text="Testing &quot;%(TestAssembly.Identity)&quot;" />
</Target>
Run Code Online (Sandbox Code Playgroud)

如何使目标中的 Message 语句打印出目标放入 @(TestAssemblyList) ItemGroup 中的Temp项目?CreateTestList

msbuild targets

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