XAML WPF文本框,无法编辑文本...即将给予

w80xi6nr  于 2023-06-19  发布在  其他
关注(0)|答案(5)|浏览(259)

我有几个用户控件在一个选项卡控件的单独选项卡之间拆分。所有这些用户控件都有功能完善的文本框,只有一个例外。在这个特殊的控件上,我不能编辑它的任何文本框控件中的值。
我可以在文本框中得到一个光标,可以突出显示文本,但我不能删除或添加文本。它所在的UserControl没有什么特别之处。这不是一个弹出窗口或类似的东西(我知道这可能会导致问题)。
是否有文本框本身之外的任何东西会导致此问题?我没办法了...

<TextBox  x:Name="SpeedRange3Text" Width="35" Height="20"
                          FontSize="8"
                          Style="{StaticResource TextBoxStyle}"
                          MaxLength="4"
                          HorizontalAlignment="Center"
                          VerticalAlignment="Center"
                          TextAlignment="Center"
                          Text="{Binding SpeedRange3 }"
                          IsReadOnly="False"
                          Grid.Row="0" Grid.Column="3"/>

    public double SpeedRange3
    {
        get
        {
            return _spdRng_3;
        }

        set
        {
           if (value <= 60 && value >= 0)
            {
                _spdRng_3 = value;
            }
            else
            {
                _spdRng_3 = 0;
                MessageBox.Show("Enter a value between 0 and 60");
            }

            NotifyPropertyChanged("SpeedRange3");
        }
    }
ccrfmcuu

ccrfmcuu1#

我的猜测是,焦点仍然在应用程序中的其他窗口上。也许你应该试着把注意力集中在你的窗口/用户控件上

ippsafx7

ippsafx72#

如果您正在对该textBox的TextChanged事件执行某些操作,请在代码中向TextChanged事件添加一个断点,然后查看会发生什么。我也遇到过类似的问题,当我类型,该事件已清除。只是猜测。

dgiusagp

dgiusagp3#

我回答这个旧线程希望它可以帮助别人,因为我终于解决了这个问题。我的具体案例中TextBox在DataGrid中,DataGrid的IsHitTestVisible属性设置为False;移除该属性解决了该问题。
作为澄清,这是我所拥有的:

<DataGrid IsHitTestVisible="False">
    <DataGrid.Columns>
        <DataGridTemplateColumn IsReadOnly="False" Header="Value">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding Path=Value, UpdateSourceTrigger=LostFocus}" IsReadOnly="False" TextWrapping="WrapWithOverflow"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

这是工作代码:

<DataGrid>
    <DataGrid.Columns>
        <DataGridTemplateColumn IsReadOnly="False" Header="Value">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding Path=Value, UpdateSourceTrigger=LostFocus}" IsReadOnly="False" TextWrapping="WrapWithOverflow"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>
8ulbf1ek

8ulbf1ek4#

我也有同样的问题。我有一个简单的<TextBox>,带有Name和Background属性,位于<Grid>中。不明白为什么它忽略了所有的努力,采取重点,然后让我输入文本。
我的解决方案是将Focusable="True"属性添加到<TextBox>元素。
我希望这对其他人有帮助。我知道这是一个老问题,但它仍然适用于今天!

lsmd5eda

lsmd5eda5#

可能导致问题的一件事是,如果您意外地在同一网格行和列位置添加两个不同的元素,使它们彼此重叠。因此,当您尝试单击TextBox时,一个元素正在消耗单击事件。点击tab键可能最终会让您找到正确的元素,但您可能希望将它们分开,以便它们不再重叠。

相关问题