wpf页面不可编辑

时间:2011-10-27 17:41:11

标签: c# wpf

我在尝试开发WPF页面时遇到问题。我有一个带有WPF框架的窗口,当窗口加载时我使用MainFrame.Navigate(新页面对象)。唯一的问题是我不能按任何按钮或使用文本框。任何想法,我该如何解决这个问题?

这是我的wpf窗口的代码:

<Window x:Class="ViewLayer.Forms.Win_LoginCloseable"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Win_LoginCloseable" Height="477" Width="501" WindowStyle="None" WindowStartupLocation="CenterScreen" ResizeMode="NoResize">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="180*" />
            <RowDefinition Height="164*" />
            <RowDefinition Height="35*" />
        </Grid.RowDefinitions>
        <Rectangle Grid.RowSpan="3"  Name="Rect_Main" />
        <TextBlock Grid.Row="2" FontFamily="Calibri" FontSize="17" FontStyle="Italic" Margin="10,0,12,7" Name="tb_remainding" Text="" TextAlignment="Justify" TextWrapping="WrapWithOverflow" Height="28" VerticalAlignment="Bottom" />
        <Button Content="Cerrrar" Grid.Row="1" Height="73" HorizontalAlignment="Center" Name="btn_cancel" VerticalAlignment="Bottom" Width="173" Click="btn_cancel_Click" Background="#FFC70000" Margin="114,0,114,5" />
            <Frame x:Name="MainFrame" IsHitTestVisible="False" NavigationUIVisibility="Automatic" />
        <TextBlock FontFamily="Calibri" FontSize="22" FontWeight="Bold" Foreground="#FF797979" Height="95" Margin="0,0,0,0" Name="textBlock2" Text="Una vez identificado, luego de 90 segundos de inactividad el sistema cerrará su sesión automaticamente" TextAlignment="Center" TextTrimming="None" TextWrapping="Wrap" VerticalAlignment="Top" Grid.Row="1" HorizontalAlignment="Center" />
        <TextBox Grid.Row="1" Height="23" HorizontalAlignment="Left" Margin="34,100,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
    </Grid>
</Window>

窗口的构造函数

private Win_LoginCloseable()
        {
            InitializeComponent();
            this.Pages = new List<Page>();
            this.Pages.AddRange(new Page[]{
                    new MagneticCardPage(),
                    new UserInputPage()
                });

        }

这里我加载表单时:

public void LoadForm(int Index = 0)
{
this.MainFrame.Navigate(this.Pages[Index]);
this.ShowDialog();
}

我再说一遍,在一个页面中我有文本框和按钮。但是当我尝试使用它们或点击时我可以。事件没有进入页面。

提前致谢

2 个答案:

答案 0 :(得分:0)

构造函数中的代码错误。 应将其标记为公开,而不是私有。

构造函数将始终调用InitializeComponent,但如果构造函数标记为private,则它无法正常运行。因此,将显示控件但是不会执行事件句柄,因为事件处理程序代码在InitializeComponent中可用,并且我确定它不会被执行。

改变这个:

private Win_LoginCloseable()         
{
    InitializeComponent();
    this.Pages = new List<Page>();
    this.Pages.AddRange(new Page[]{                     
        new MagneticCardPage(),                     
        new UserInputPage() });          
} 

进入这个:

public Win_LoginCloseable()         
{
    InitializeComponent();
    this.Pages = new List<Page>();
    this.Pages.AddRange(new Page[]{                     
        new MagneticCardPage(),                     
        new UserInputPage() });          
} 

答案 1 :(得分:0)

嘛!我找出了问题的解决方案。

这里:

<Frame x:Name="MainFrame" IsHitTestVisible="False" NavigationUIVisibility="Automatic" />

我将其替换为:

<Frame x:Name="MainFrame" IsManipulationEnabled="True" />

它运作良好!

谢谢!