小编Fre*_*lad的帖子

WPF图片,如何消除模糊?

我有 在此输入图像描述

我需要 在此输入图像描述

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)

wpf image-processing wpf-controls

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

CanExecute Logic for DelegateCommand

更新:焦点变成MVVM而不是实际问题,所以我正在更新它.

我有一个问题CanExecuteDelegateCommand.它在我打电话之前没有更新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更新.这是它的意思吗?

c# wpf command entity-framework prism

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

TextBox不支持系统十进制(点或逗号)

如果我将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)

c# wpf culture textbox wpf-controls

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

WPF - 将窗口带到前面

我有一个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设置为所有者.

.net c# wpf

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

指定Xaml中的开始和结束标记之间的属性

考虑以下Xaml

<Grid>
    <TextBox>Text</TextBox>
    <Button>Content</Button>
</Grid>
Run Code Online (Sandbox Code Playgroud)

它会设置

  • TextBox的文本属性(仅限WPF)
  • 按钮的内容属性
  • 网格的子属性

但这是如何规定的?如何指定Xaml中开始和结束标记之间的哪个属性?
这是由依赖属性中的某些元数据设置还是什么?

谢谢

c# silverlight wpf xaml windows-phone-7

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

如何在没有公共构造函数的情况下模拟/伪造/存根密封OracleException?

在我的测试中,我需要测试抛出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)

.net c# oracle mocking oracleclient

10
推荐指数
3
解决办法
2452
查看次数

在Visual Studio Designer中为控件指定双击事件

双击ControlVisual Studio Designer中的a时,会自动订阅某些文件,event并在代码隐藏文件中生成事件处理程序.

双击以下控件即可订阅相应的事件

  • UserControl- 加载
  • Button- 点击
  • TextBox- TextChanged
  • Grid- 没有活动

这是如何指定的,它是Visual Studio设置吗?可以覆盖它,如何指定要链接到双击的事件,例如自定义控件?

谢谢

c# silverlight wpf xaml visual-studio

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

指定命名空间的程序集

无论如何在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#代码后面我找不到反正创建的实例ButtonChromePresentationFramework.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选择哪个,因为我没有告诉它.我能以某种方式这样做吗?

c# wpf xaml namespaces .net-assembly

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

如何根据条件阻止选择TreeViewItem

我有wpf TreeView - 绑定到一些数据.Treeview位于窗口的左侧,该窗口分为两个区域,其中树是导航,右侧的面板根据所选的树节点更改内容.

并非树视图的所有节点都生成详细信息.我想禁用这些节点的选择.任何的想法?

谢谢

wpf treeview xaml treeviewitem

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

可停靠的Windows.浮动窗口和MainWindow菜单集成

在Visual Studio 2010中,Dockable Windows似乎在各种情况下都能正常工作.
如果"浮动"文档处于活动状态并且选择了某个菜单(例如编辑 - >粘贴),则"浮动"文档仍具有焦点,并且将对该"浮动"窗口执行命令.另外,请注意这在UI中是如何清晰可见的.MainWindow.xaml仍处于活动状态,即使选择了Team-menu,Visual Studio中的Main窗口也处于非活动状态.

在此输入图像描述

我一直试图使用很多不同的第三方对接组件来获得相同的行为,但它们都有相同的问题:一旦我选择了菜单,MainWindow就会聚焦,我的浮动窗口就不再有焦点了.有没有人知道在Visual Studio中获得相同行为的方法?

目前我正在使用Infragistics xamDockManager,可以使用以下示例代码重现该问题.

  • 右键单击"Header 1"并选择"Float"
  • 单击"文件"菜单
  • 注意MainWindow如何获得焦点.

的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 xaml visual-studio-2010 visual-studio dockable-windows

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