我正在努力创建一些标记扩展,并开始获得非常奇怪的VS行为.我已经在单独的解决方案中提取并确定了问题.问题是VS无法在XAML中创建CLR对象.
这里是:
视图:
<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpfApplication4="clr-namespace:WpfApplication4">
<Window.Resources>
<wpfApplication4:Dog x:Key="doggy" />
</Window.Resources>
<Grid />
</Window>
Run Code Online (Sandbox Code Playgroud)
代码背后:
using System.Windows;
namespace WpfApplication4
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
Run Code Online (Sandbox Code Playgroud)
狗类:
namespace WpfApplication4
{
public class Dog
{
}
}
Run Code Online (Sandbox Code Playgroud)
App.Xaml(App.Xaml.cs中没有代码):
<Application x:Class="WpfApplication4.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
我得到的例外情况:
Error 1 The name "Dog" does not exist in the namespace "clr-namespace:WpfApplication4". \\hopr1\folders$\vxk\Documents\Visual Studio 2012\Projects\WpfApplication4\MainWindow.xaml 6 9 WpfApplication4
Run Code Online (Sandbox Code Playgroud)
我能够运行解决方案,但设计师失败并出现"无效标记"错误任何想法?
编辑
我正在运行VS 2012 Update 2相同的解决方案在VS …
这方面的例子是:
textBox绑定到某些数据.还有第二个文本框,它不绑定任何东西.所以我想将文本框2绑定到第一个textBox绑定的相同数据.
换句话说,我不知道DependencyObject是否存储了对它的数据绑定的一些引用?如果没有,找出特定对象的所有数据绑定的方法是什么?
我有一个自定义命令,我尝试从上下文菜单执行它们,但它们总是显示为禁用,除非我单击UI上的任何按钮(按钮与命令没有任何关系).
单击按钮后,命令开始正确显示(当它们不可用时,它们将被禁用并启用(如果可用)).
编辑:事实证明,它不是按钮单击,这使命令正常工作,但按钮或其他控件处于焦点(例如,如果我选中控件,这也启用我的命令).
这是命令的代码:
<Window.InputBindings>
<KeyBinding Command="{x:Static local:MainWindow.Quit}" Key="Q" Modifiers="Ctrl"/>
<KeyBinding Command="{x:Static local:MainWindow.Disconnect}" Key="D" Modifiers="Ctrl"/>
</Window.InputBindings>
<Window.ContextMenu>
<ContextMenu Opacity="95">
<MenuItem Header="Quit Application Ctrl + Q" Command="{x:Static local:MainWindow.Quit}"/>
<MenuItem Header="Disconnect from the pump Ctrl + D" Command="{x:Static local:MainWindow.Disconnect}"/>
</ContextMenu>
</Window.ContextMenu>
Run Code Online (Sandbox Code Playgroud)
这是命令CanExecuteMethod:
public static RoutedCommand Quit = new RoutedCommand();
private void QuitCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud) 在许多使用递归的函数式语言中被认为是一种很好的实践.我认为这很好,因为编译器优化了函数式语言的代码.
但是在创建算法时,在C#中使用递归是一种好习惯吗?就C#而言,是否正确,递归算法将导致您的堆栈增长非常显着(如果调用量非常大)并且这根本不会快,并且可能导致堆栈溢出.或者还有一些优化可以使递归函数高效?
如果您在使用函数语言中的递归和C#的算法之间进行一些比较(速度,内存,可读性),我将不胜感激.
我最近开始使用MVVM模式.我有几个项目,我使用它和每个新项目,我开始看到它将适合在新项目中.
现在我开始问自己是否存在最好不使用MVVM的情况.或者它是一个很好的模式,你可以在任何地方使用?
您能否描述一下MVVM不是最佳选择的几种情况?
我正在研究在Windows XP Standard上运行的触摸屏应用程序.使用当前硬件来调用右键单击用户必须单击并保持几秒钟,但这可能会干扰其他操作,例如在滚动查看器中按住重复按钮,因此我决定禁用右键单击.
理想情况下,我不想在应用程序级别禁用右键,但如果不可能,禁用右键单击Windows级别也适用于我.
您能否提供一个示例,了解如何实现ICommandSource
界面.因为我希望我的UserControl
,没有能力在xaml中指定命令,才能拥有此功能.并且能够在用户点击时处理该命令CustomControl
.
我知道默认的WPF行为是渲染WPF控件然后在顶部呈现WinForms,但有没有办法在其上呈现WPF WindowsFormsHost
?
编辑:我也发现了一个临时黑客.当wpf控件重叠时WindowsFormsHost
,我改变了它的大小WindowsFormsHost
(这只适用于有重叠的矩形对象,不适用于其他形状.)
尝试使用时读取locl文本文件时出现以下异常
var text = await FileIO.ReadTextAsync(file);
Run Code Online (Sandbox Code Playgroud)
与此oplock关联的句柄已关闭.oplock现在坏了.(HRESULT异常:0x80070323)
这发生在一个回归单元测试中,它也会在应用程序中不时发生.应用是XAML + C#
可能导致它的任何想法?!
我有一个这样的脚本:
var test = function(){
console.log('From test: ' + this);
};
console.log(this);
test();
Run Code Online (Sandbox Code Playgroud)
我运行的是哪个node test.js
.而我对脚本的期望是this
指向全局对象,但只有this
测试函数指向global
对象.
console.log(this);
实际上指向一个空对象.
我试图理解为什么node.js有这种行为,我误解了this
关键字如何在node.js中工作.
wpf ×7
c# ×5
.net ×1
algorithm ×1
command ×1
data-binding ×1
javascript ×1
mvvm ×1
node.js ×1
performance ×1
recursion ×1
right-click ×1
this ×1
touch ×1
xaml ×1