小编Hab*_*iri的帖子

WPF和MVVM:如何自动将焦点移动到下一个控件

我有一个带有2个TextBoxes的WPF窗口,它有Ordered TabIndex 0,1我希望在按Enter键时自动将焦点从第一个TextBox移动到第二个TextBox.我使用MVVM Light.

备注:这篇文章不重复.在这里,我不使用事件处理程序的经典方法,但MVVM模式,因为你知道在视图中不允许使用Code Behind.

我找到了解决方案,但我不知道它是否尊重MVVM原则.这里的代码:

风景

<Window x:Class="WpfMMVLight2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:cmd ="http://www.galasoft.ch/mvvmlight"
    Title="MainWindow" Height="350" Width="525"
    DataContext="{Binding MainViewModel}">
    <Grid FocusManager.FocusedElement="{Binding ElementName=tb1}">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="70"/>
    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <TextBlock Grid.Column="0" Text="Text 1" VerticalAlignment="Center"/>
    <TextBox x:Name="tb1" Grid.Column="1" VerticalAlignment="Center" Margin="5">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="KeyDown">
                <cmd:EventToCommand PassEventArgsToCommand="True"
                Command ="{Binding KeyDownCommand, Mode=OneWay}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </TextBox>


     <TextBlock Grid.Column="0" Grid.Row="1" Text="Text 2" VerticalAlignment="Center"/>
     <TextBox x:Name="tb2" Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" Margin="5">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="KeyDown">
                <cmd:EventToCommand PassEventArgsToCommand="True"
            Command ="{Binding KeyDownCommand, Mode=OneWay}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers> …
Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm

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

WPF路径:如何在XAML中绘制它?

我想创建一个非矩形标题的自定义GroupBox,如下图所示:

在此输入图像描述

如您所见,标题的内容必须是可参数化的,因此可以在xaml中输入图像,标题和背景.

提前致谢.


谢谢您的回答.

实际上我想在自定义组合框中使用这个设计,所以在你的答案中,如果我没有设置网格的宽度和高度(宽度= 150高度= 30),形状组件会分开,所以我希望形状在一个独特的身体,所以很容易应用背景颜色.顺便问一下,你可以像下面的图片一样绕过角落吗?

在此输入图像描述

wpf path

3
推荐指数
1
解决办法
2339
查看次数

标签 统计

wpf ×2

c# ×1

mvvm ×1

path ×1