我在visual studio的项目文件夹中有一个图像文件,它被设置为构建动作"资源",因此它包含在我的exe文件中.我可以在xaml链接到这个文件没问题,例如<.Image Source ="images/myimage.png">它可以工作.
但是如果我尝试使用File.exists("images/myimage.png")检查文件的存在,它总是返回false.我在这做错了什么?
我有一个如下定义的列表框:
var listBox = new ListBox();
listBox.Items.Add(1);
listBox.Items.Add(2);
listBox.Items.Add(3);
Run Code Online (Sandbox Code Playgroud)
我想将焦点直接设置到列表框中的项目.
如果我这样做:
listBox.SelectedIndex = 0;
listBox.Focus();
Run Code Online (Sandbox Code Playgroud)
焦点设置为整个listBox,所以如果我按向下箭头将选择移动到下面的项目,我必须按两次箭头.第一次焦点从整个列表框跳到第一个项目,然后当我再次按箭头时,选择最终跳下来.
我想将焦点直接设置到第一个项目,所以我不必按箭头两次.
我有一个.mobi电子书文件,我正试图用C#从中提取书籍封面图片.
http://wiki.mobileread.com/wiki/MOBI#MOBI_Header
我假设coveroffset包含从封面图像开始的文件开头的字节数,但是当我读取它时,我只得到一些随机代码,而不是图像代码.更不用说没有图像长度,所以我甚至不知道,我应该读多少.那么如果标题信息似乎没有帮助,我怎样才能找到图像并将其取出?我知道它可以做到,因为当我将这个mobi文件放入Calibre时,它会提取并显示封面图像.
我有这段代码:
var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskDrive");
foreach (var queryObj in searcher.Get().Cast<ManagementObject>()) //Error points to this line
Run Code Online (Sandbox Code Playgroud)
基本上这段代码的作用是,它遍历连接的设备列表,并查看我想要的设备是否已连接。如果我在运行代码时设备已经连接的情况下运行此代码,则它可以完美运行。但是,如果我用 DBT_DEVICEARRIVAL 触发此代码(这是系统在连接某些设备时发送的事件,我用
private static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
if(..DBT_DEVICEARRIVAL..)
new ScanDevices(); /*Here lies the code from above (in the class)*/
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
由于应用程序正在调度输入同步调用,因此无法进行传出调用。(来自 HRESULT 的异常:0x8001010D (RPC_E_CANTCALLOUT_ININPUTSYNCCALL))。
如果我把 thread.sleep(5000) 放在上面的代码之上,所以它在执行前等待 5 秒,那么代码就可以工作了。所以冲突一定在某个地方,其他东西首先尝试访问该设备并为自己占据所有。
我在互联网上搜索并找到了一些建议,例如向自己发送自定义 postmessage 以触发代码,但我不知道如何做到这一点,甚至不知道如何解决问题。
这里最好的解决方案是什么?
假设我有这样的函数:
public List<int> func()
{}
Run Code Online (Sandbox Code Playgroud)
现在,出于某种原因,我没有任何东西可以放入列表中,所以我将返回"空的东西".根据一个好的做法,我应该在上面的函数中返回以下三个中的哪一个?
return null;
return new List<int>();
return default(List<int>); //Is this the same thing as the one above?
Run Code Online (Sandbox Code Playgroud) 是否有某种方法可以在 xaml 的资源字典中设置全局样式而无需在受影响的元素中指定任何特殊设置?
例如,假设我有 resdictionary.xaml 文件
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
然后我有正常的 window.xaml 文件:
<Window x:Class="App.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="500" Width="800" MinWidth="500" MinHeight="350">
<Window.Resources>
<ResourceDictionary Source="resdictionary.xaml" />
</Window.Resources>
<Button Content="Button 1"/>
<Button Content="Button 2"/>
<Button Content="Button 3"/>
</Window>
Run Code Online (Sandbox Code Playgroud)
我希望所有按钮都具有黑白背景渐变和 Calibri 字体。有没有办法在 resdictionary.xaml 中指定它而不必更改 window.xaml 文件?
到目前为止,在我的应用程序中,我通过序列化存储了我的所有数据,所以我真的不需要任何其他东西。但现在我正在处理更复杂的数据,我需要的不仅仅是一个简单的文件来存储它们。我可以使用 Windows 中的一些内置存储引擎,它允许我使用 SQL 查询提取和编辑数据吗?(因为我怀疑用户是否愿意仅为我的应用程序安装和配置独立的 MySQL 服务器,而且我真的不想使用 3rd 方解决方案)如果有,我该如何访问这样的数据库引擎?