这里的场景是:
我有一张画布,上面画着不同的图表。现在的要求是使用 C# 或 VB 使用背后的代码放大画布。此外,我需要将缩放代码放置在某个 dll 中,以便我可以在我的应用程序中重复使用同一组代码。
现在我的问题是如何做到这一点......
我已经尝试过以下代码,请看一下..
public MainWindow()
{
InitializeComponent();
canvas.MouseEnter += new MouseEventHandler(canvas_MouseEnter);
canvas.MouseWheel += new MouseWheelEventHandler(canvas_MouseWheel);
}
void canvas_MouseWheel(object sender, MouseWheelEventArgs e)
{
double height = canvas.ActualHeight;
double width = canvas.ActualWidth;
double zoom = e.Delta;
height += 2;
width += 2;
ScaleTransform sc = new ScaleTransform(width, height);
canvas.LayoutTransform = sc;
canvas.UpdateLayout();
}
Run Code Online (Sandbox Code Playgroud) 目前,我正在制作一个拦截特定键盘击键的程序(使用其HID进行过滤).因此,为了知道特定设备发送了哪些击键,我使用了RawInput技术,受到这个伟大教程的启发:
http://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard
现在,它工作得很好:我可以获得击键并知道哪个键盘生成了它.
我的项目的难点在于拦截和阻止来自这个特定键盘的击键,以避免这些击键到达聚焦应用程序(聚焦意味着操作系统带来的前景窗口).
因此,在具有窗口句柄的所有当前线程上,自然解决方案是低级全局钩子.
我使用并调整了此页面中的代码来执行此操作:
http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx
我在visual studio中创建了一个新项目,以避免在我的工作中乱七八糟.经过一些研究,我能够通过在回调函数中返回值(-1)来阻止所有应用程序的击键:
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
//Check if we have a key to pass
if (
nCode >= 0 && (
(wParam == (IntPtr)WM_KEYDOWN) || (wParam == (IntPtr)WM_KEYUP) )
)
{
int vkCode = Marshal.ReadInt32(lParam);
if ((Keys)vkCode == Form1.KeysToIgnore)
{
return (IntPtr)(-1);
}
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}
Run Code Online (Sandbox Code Playgroud)
为了将所有内容(钩子程序和击键检测)放在一起,我在最终项目中创建了两个线程:
1st:使用RawInput识别每个键击并将其附加到设备
第二:用于挂钩所有窗口并阻止某些击键
线程1被设计为发送键击以阻止线程2,线程2读取发送到所有窗口应用程序的所有消息和来自特定键盘的垃圾键击.我确切地知道这两个线程是同步的.
问题是钩子似乎是在执行Rawinput之前执行的,所以我无法识别发送击键的键盘.我不知道怎么做,也许改变钩子的类型(避免使用低级键盘钩,但使用用户空间级键盘钩).
或者也许有人知道一种聪明的方式来做我想做的事情?
我知道这个请求真的很复杂,请不要犹豫,询问更多细节.
我使用以下命令配置mono
./configure --host=arm-linux --build=arm-none-linux-gnueabi --target=arm-linux --cache-file=arm-linux.cache --disable-mcs-build
Run Code Online (Sandbox Code Playgroud)
文件arm-linux.cache是
mono_cv_clang=no
mono_cv_uscore=no
with_tls=no
with_sigaltstack=no
Run Code Online (Sandbox Code Playgroud)
而当我制作单声道时,错误信息是:
在mini-arch.h:21中包含的文件中,
来自mini.h:35,
来自genmdesc.c:9:
mini-arm.h:39:2:错误:#error"至少有一个ARM_FPU_NONE,ARM_FPU_FPA,ARM_FPU_VFP或者必须定义ARM_FPU_VFP_HARD."
我对android dev非常新...我想知道在android中隐藏图像的最佳方法是什么.我有一个应用程序,我拍照,我想要那张照片,只能在我的应用程序内显示.
所以我正在尝试构建一个多项目模板,当我设置它时,文件夹结构出现错误(不是微软在创建项目时是如何做的)并且它把诸如Packages文件夹和References文件夹之类的东西弄乱了。
这是当前的结构:
Solution Folder
-Solution File
-Folder (Solution Name)
--Packages
--References
--Project1 Folder
--Project2 Folder
Run Code Online (Sandbox Code Playgroud)
我希望它具有 .NET 自动执行的相同结构:
Solution Folder
-Solution File
-References Folder
-Packages Folder
-Project1 Folder
-Project2 Folder
Run Code Online (Sandbox Code Playgroud)
这是我的 vstemplate:
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="ProjectGroup">
<TemplateData>
<Name>ASP Solution Template</Name>
<Description>This is the Solution Template for ASP Applications</Description>
<Icon>__TemplateIcon.ico</Icon>
<ProjectType>CSharp</ProjectType>
</TemplateData>
<TemplateContent BuildOnLoad="true">
<ProjectCollection>
<SolutionFolder Name="References">
</SolutionFolder>
<SolutionFolder Name="packages">
</SolutionFolder>
<ProjectTemplateLink ProjectName="$safeprojectname$">
ASPTemplate\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.ClassLibrary">
ClassLibrary\MyTemplate.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来以编程方式将组添加到Microsoft Office Word 2010功能区的现有选项卡(例如,在我的情况下为Developer选项卡).
在网上找不到任何有用的例子.MS Office 2010中是否允许这些类型的自定义,如果是这样,请提供有关如何执行此操作的任何有用链接或代码示例

我有一个字符串"0AAE0000463130004144430000",我需要计算构成字符串的十六进制字节的二进制补码校验和.
上面示例字符串的公式是
对于此示例,D9是正确的校验和,但是我无法从C#中的字符串中解析出两位十六进制值.我目前的代码如下:
string output = "0AAE0000463130004144430000";
long checksum = 0;
char[] outputBytes = output.TrimStart(':').ToCharArray();
foreach (var outputByte in outputBytes)
{
checksum += Convert.ToInt32(outputByte);
checksum = checksum & 0xFF;
}
checksum = 256 - checksum;
Run Code Online (Sandbox Code Playgroud)
但是,这是我可以告诉的ASCII值的总和,并为每个单独的字符执行此操作.
我正在尝试使用NO DUPLICATE CHARS生成一个16个字符的随机字符串.我觉得它不应该很难但我被卡住了.
我正在使用2种方法,一种用于生成密钥,另一种用于删除重复的字符.在main中,我创建了一个while循环,以确保生成的字符串长度为16个字符.
我的逻辑出了问题,因为它只是重复出现了16个字符串.只是不能做对.
代码:
public string RemoveDuplicates(string s)
{
string newString = string.Empty;
List<char> found = new List<char>();
foreach (char c in s)
{
if (found.Contains(c))
continue;
newString += c.ToString();
found.Add(c);
}
return newString;
}
public static string GetUniqueKey(int maxSize)
{
char[] chars = new char[62];
chars =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".ToCharArray();
byte[] data = new byte[1];
RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider();
crypto.GetNonZeroBytes(data);
data = new byte[maxSize];
crypto.GetNonZeroBytes(data);
StringBuilder result = new StringBuilder(maxSize);
foreach (byte b in data)
{
result.Append(chars[b % …Run Code Online (Sandbox Code Playgroud) 我在"文本"滑块中遇到问题:
HTML:
<div id="textSlider">
<ul>
<li class="active">Doors | Windows | Showers</li>
<li>Superb Fenestration | Superior Service</li>
</ul>
</div>
<div class="clear"></div>
Run Code Online (Sandbox Code Playgroud)
JS:
$('#textSlider ul li').each(function(){
setTimeout(function(){
$('.active').animate({'left': '0px'},500).delay(500).animate({'left': '-300px'},500);
$(this).removeClass('active');
}, 2000);
});
Run Code Online (Sandbox Code Playgroud)
CSS:
#textSlider{
position: relative;
left: 0;
}
ul{
list-style: none;
}
ul li{
position: relative;
left: -300px;
}
.clear{
clear: both;
}
Run Code Online (Sandbox Code Playgroud)
我需要的:
我希望第一行插入,然后输出.在第一行之后,第二行应该做同样的事情.
然后该函数应该重复整个过程
我怎么做?
如何在下面的代码中更新我的label1文本?我得到一个"调用线程无法访问此对象,因为不同的线程拥有它"错误.我已经读过其他人使用过Dispatcher.BeginInvoke,但我不知道如何在我的代码中实现它.
public partial class MainWindow : Window
{
System.Timers.Timer timer;
[DllImport("user32.dll")]
public static extern Boolean GetLastInputInfo(ref tagLASTINPUTINFO plii);
public struct tagLASTINPUTINFO
{
public uint cbSize;
public Int32 dwTime;
}
public MainWindow()
{
InitializeComponent();
StartTimer();
//webb1.Navigate("http://yahoo.com");
}
private void StartTimer()
{
timer = new System.Timers.Timer();
timer.Interval = 100;
timer.Elapsed += timer_Elapsed;
timer.Start();
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
tagLASTINPUTINFO LastInput = new tagLASTINPUTINFO();
Int32 IdleTime;
LastInput.cbSize = (uint)Marshal.SizeOf(LastInput);
LastInput.dwTime = 0;
if (GetLastInputInfo(ref LastInput))
{
IdleTime = System.Environment.TickCount - LastInput.dwTime; …Run Code Online (Sandbox Code Playgroud)