我有 
我需要 
XAML:
<Image Height="500"
MouseLeftButtonDown="image_MouseLeftButtonDown"
MouseRightButtonDown="image_MouseRightButtonDown"
Name="image"
Stretch="Fill"
Width="500" />`
Run Code Online (Sandbox Code Playgroud)
C#:
wbmap = new WriteableBitmap(50, 50, 500, 500, PixelFormats.Indexed8, palette);
wbmap.WritePixels(new Int32Rect(0, 0, wbmap.PixelWidth, wbmap.PixelHeight), pixels, wbmap.PixelWidth * wbmap.Format.BitsPerPixel / 8, 0);
image.Source = wbmap;
Run Code Online (Sandbox Code Playgroud) 更新:焦点变成MVVM而不是实际问题,所以我正在更新它.
我有一个问题CanExecute了DelegateCommand.它在我打电话之前没有更新RaiseCanExecuteChanged,这是期望的行为吗?

我在这里上传了一个简单的示例项目来重现这个问题:http://dl.dropbox.com/u/39657172/DelegateCommandProblem.zip
问题是这个,我有两个Buttons这样的.一个是绑定Command到一个RelayCommand实现,另一个绑定到Prism的实现DelegateCommand
<Button Command="{Binding DelegateSaveCommand}"/>
<Button Command="{Binding RelaySaveCommand}"/>
Run Code Online (Sandbox Code Playgroud)
ViewModel ICommands
DelegateSaveCommand = new DelegateCommand(Save, CanSaveDelegate);
RelaySaveCommand = new RelayCommand(param => Save(), param => CanSaveRelay);
Run Code Online (Sandbox Code Playgroud)
和CanExecute方法/谓词
public bool CanSaveDelegate()
{
return HasChanges;
}
public bool CanSaveRelay
{
get { return HasChanges; }
}
Run Code Online (Sandbox Code Playgroud)
两人都在使用该物业HasChanges.何时HasChanges更新,仅CanSaveRelay更新.这是它的意思吗?
如果我将Texta 绑定TextBox到float属性,则显示的文本不符合系统十进制(点或逗号).相反,它总是显示一个点('.').但是如果我在a中显示值MessageBox(使用ToString()),则使用正确的System Decimal.

XAML
<StackPanel>
<TextBox Name="floatTextBox"
Text="{Binding FloatValue}"
Width="75"
Height="23"
HorizontalAlignment="Left"/>
<Button Name="displayValueButton"
Content="Display value"
Width="75"
Height="23"
HorizontalAlignment="Left"
Click="displayValueButton_Click"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
代码背后
public MainWindow()
{
InitializeComponent();
FloatValue = 1.234f;
this.DataContext = this;
}
public float FloatValue
{
get;
set;
}
private void displayValueButton_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(FloatValue.ToString());
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经用一个转换器解决了这个问题,转换器用系统十进制取代了dot(这是有效的),但这是必要的原因是什么?这是设计,是否有更简单的方法来解决这个问题?
SystemDecimalConverter(以防其他人遇到同样的问题)
public class SystemDecimalConverter : IValueConverter
{
private char m_systemDecimal = '#';
public SystemDecimalConverter()
{
m_systemDecimal = GetSystemDecimal();
}
object IValueConverter.Convert(object value, Type …Run Code Online (Sandbox Code Playgroud) 我有一个WPF窗口,我没有关闭.相反,我做Hide()和Show()它.现在,当我在记录中的网格中双击我的MainWindow时,将触发Show()窗口,窗口将始终显示在MainWindow后面.我已经尝试了休息,但没有成功:
view.Show();
view.Activate();
view.Topmost = true;
view.Topmost = false;
view.Focus();
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以让窗户绝对到前面?我无法将MainWindow设置为所有者.
考虑以下Xaml
<Grid>
<TextBox>Text</TextBox>
<Button>Content</Button>
</Grid>
Run Code Online (Sandbox Code Playgroud)
它会设置
但这是如何规定的?如何指定Xaml中开始和结束标记之间的哪个属性?
这是由依赖属性中的某些元数据设置还是什么?
谢谢
在我的测试中,我需要测试抛出OracleException时会发生什么(由于存储过程失败).我正在尝试设置Rhino Mocks
Expect.Call(....).Throw(new OracleException());
Run Code Online (Sandbox Code Playgroud)
无论出于何种原因,OracleException似乎都没有公共构造函数.我该怎么做才能测试这个?
编辑:这正是我想要实例化的内容:
public sealed class OracleException : DbException {
private OracleException(string message, int code) { ...}
}
Run Code Online (Sandbox Code Playgroud) 双击ControlVisual Studio Designer中的a时,会自动订阅某些文件,event并在代码隐藏文件中生成事件处理程序.
双击以下控件即可订阅相应的事件
UserControl- 加载Button- 点击TextBox- TextChangedGrid- 没有活动这是如何指定的,它是Visual Studio设置吗?可以覆盖它,如何指定要链接到双击的事件,例如自定义控件?
谢谢
无论如何在C#中指定程序集和命名空间?
举例来说,如果你同时引用PresentationFramework.Aero,并PresentationFramework.Luna在一个项目中,您可能会注意到,他们都共享同一个命名空间,但不同的执行相同的控制.
以ButtonChrome为例.它存在于命名空间下的两个程序集中Microsoft.Windows.Themes.
在XAML中,您将程序集与命名空间一起包含在内,所以这里没有问题
xmlns:aeroTheme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
xmlns:lunaTheme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Luna"
<aeroTheme:ButtonChrome ../>
<lunaTheme:ButtonChrome ../>
Run Code Online (Sandbox Code Playgroud)
但在C#代码后面我找不到反正创建的实例ButtonChrome中PresentationFramework.Aero.
以下代码在编译时给出了错误CS0433
using Microsoft.Windows.Themes;
// ...
ButtonChrome buttonChrome = new ButtonChrome();
Run Code Online (Sandbox Code Playgroud)
错误CS0433:类型'Microsoft.Windows.Themes.ButtonChrome'存在于
'c:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\PresentationFramework.Aero.dll'中
和
'c:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\PresentationFramework.Luna.dll'
这是非常容易理解的,编译器无法知道ButtonChrome选择哪个,因为我没有告诉它.我能以某种方式这样做吗?
我有wpf TreeView - 绑定到一些数据.Treeview位于窗口的左侧,该窗口分为两个区域,其中树是导航,右侧的面板根据所选的树节点更改内容.
并非树视图的所有节点都生成详细信息.我想禁用这些节点的选择.任何的想法?
谢谢
在Visual Studio 2010中,Dockable Windows似乎在各种情况下都能正常工作.
如果"浮动"文档处于活动状态并且选择了某个菜单(例如编辑 - >粘贴),则"浮动"文档仍具有焦点,并且将对该"浮动"窗口执行命令.另外,请注意这在UI中是如何清晰可见的.MainWindow.xaml仍处于活动状态,即使选择了Team-menu,Visual Studio中的Main窗口也处于非活动状态.

我一直试图使用很多不同的第三方对接组件来获得相同的行为,但它们都有相同的问题:一旦我选择了菜单,MainWindow就会聚焦,我的浮动窗口就不再有焦点了.有没有人知道在Visual Studio中获得相同行为的方法?
目前我正在使用Infragistics xamDockManager,可以使用以下示例代码重现该问题.
的xmlns:igDock = "http://infragistics.com/DockManager"
<DockPanel LastChildFill="True">
<Menu DockPanel.Dock="Top">
<MenuItem Header="_File">
<MenuItem Header="_New"/>
</MenuItem>
</Menu>
<Grid>
<igDock:XamDockManager x:Name="dockManager" Theme="Aero">
<igDock:DocumentContentHost>
<igDock:SplitPane>
<igDock:TabGroupPane>
<igDock:ContentPane Header="Header 1">
<TextBox Text="Some Text"/>
</igDock:ContentPane>
<igDock:ContentPane Header="Header 2">
<TextBox Text="Some Other Text"/>
</igDock:ContentPane>
</igDock:TabGroupPane>
</igDock:SplitPane>
</igDock:DocumentContentHost>
</igDock:XamDockManager>
</Grid>
</DockPanel>
Run Code Online (Sandbox Code Playgroud) wpf ×9
c# ×7
xaml ×5
.net ×2
silverlight ×2
wpf-controls ×2
command ×1
culture ×1
mocking ×1
namespaces ×1
oracle ×1
oracleclient ×1
prism ×1
textbox ×1
treeview ×1
treeviewitem ×1