страница wpf не редактируется - PullRequest
0 голосов
/ 27 октября 2011

У меня проблема с попыткой разработать страницу 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 голосов
/ 28 октября 2011

Хорошо! Я выясняю решение проблемы.

здесь:

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

я заменяю его на:

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

и это хорошо работает!

Спасибо!

0 голосов
/ 28 октября 2011

Ваш код в конструкторе неверен. Должен быть помечен как публичный, а не как личный.

Конструктор всегда будет вызывать InitializeComponent, но он не может нормально функционировать, если ваш конструктор помечен как закрытый. Следовательно, элемент управления будет отображаться, НО дескриптор события не будет выполнен, поскольку код инициатора события доступен внутри 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() });          
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...