如何访问页面的元素以绑定到WPF中的另一个页面文本框中?

塞米尔第一

我有一个简单的问题。我尝试了太多,但仍未解决。我有一个WPF窗口和一页。单击该按钮后,页面将显示在主窗口的框架上。它用作DataTrigger“主窗口”中的“ for”按钮,并希望在主窗口中的按钮在另一个页面处于textbox焦点状态时触发

Main.xaml:

<Window x:Class="example.Main"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        Title="Main Menu" >
    <Window.Resources>
        <Style x:Key="CustomStyleButton" TargetType="{x:Type Button}">
            <Setter Property="Background" Value="#373737" />
            <Setter Property="Foreground" Value="White" />
            <Setter Property="FontSize" Value="15" />
            <Setter Property="SnapsToDevicePixels" Value="True" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border CornerRadius="4" Background="{TemplateBinding Background}">
                            <Grid>
                                <Path x:Name="PathIcon" Width="15" Height="25" Stretch="Fill" Fill="#4C87B3" HorizontalAlignment="Left" Margin="17,0,0,0"  Data="F1 M 30.0833,22.1667L 50.6665,37.6043L 50.6665,38.7918L 30.0833,53.8333L 30.0833,22.1667 Z "/>
                                <ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10,0,10"  />
                            </Grid>
                        </Border>

                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Background" Value="#E59400" />
                                <Setter Property="Foreground" Value="White" />
                                <Setter TargetName="PathIcon" Property="Fill" Value="Black" />
                            </Trigger>

                            <Trigger Property="IsPressed" Value="True">
                                <Setter Property="Background" Value="OrangeRed" />
                                <Setter Property="Foreground" Value="White" />
                            </Trigger>
                            <Trigger Property="IsFocused" Value="True">
                                <Setter Property="Background" Value="Gold" />
                                <Setter Property="Foreground" Value="White" />
                            </Trigger>


       // This needs to be triggered as long as focussing another page's textboxt.
                            <DataTrigger Binding="{Binding ElementName=Exam , Path=txtSearch.IsFocused}"
                     Value="true">
                                        <Setter Property="Background" Value="Red" />
                                    </DataTrigger>
                                                                                 </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>

        </Style>      

    </Window.Resources>

        <Grid >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="207*"/>
            <ColumnDefinition Width="722*"/>
        </Grid.ColumnDefinitions>
        <StackPanel  Margin="20,0,0,0" >

            <Button x:Name="button"  x:FieldModifier="public" Style="{StaticResource CustomStyleButton}" Content="user" Click="button_Click"/>
            <Label x:Name="label_Copy2" Margin="0,0,0.2,0" Height="21"/>
            <Button x:Name="button1" Style="{StaticResource CustomStyleButton}" Content="EXAMPLE" Click="button1_Click"/>
            <Label x:Name="label_Copy1" Margin="0,0,0.2,0" Height="21"/>

        </StackPanel>


        <DockPanel Grid.Column="1" Margin="44,80,44,65" Background="#FFA3D340" >
            <Frame x:Name="_mainFrame" BorderBrush="#FFBC9D0D" BorderThickness="5"  NavigationUIVisibility="Hidden"  />

        </DockPanel>

    </Grid>

</Window>



enter code here

Page1.xaml:

<Page x:Class="example.Page1_1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:local="clr-namespace:example"
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
      Title="Page1_1" x:Name="Exam" >
    <Page.Style>
        <Style TargetType="Page">
            <Setter Property="Background" Value="#CCCCD0" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=txtSearch, Path=IsFocused}"
                     Value="true">
                    <Setter Property="Background" Value="Black" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Page.Style>

    <TextBox x:Name="txtSearch" x:FieldModifier="public" Width="100"
           HorizontalAlignment="Center" VerticalAlignment="Center" />
</Page>
毫米8

向Page1.xaml.cs类添加一个公共属性,该属性返回对TextBox的引用:

public partial class Page1 : Page
{
    public Page1()
    {
        InitializeComponent();
    }

    public TextBox TxtSearch
    {
        get { return txtSearch; }
    }
}

...并在窗口的“样式”中将其绑定:

<Style x:Key="CustomStyleButton" TargetType="{x:Type Button}">
    <Setter Property="Background" Value="#373737" />
    <Setter Property="Foreground" Value="White" />
    <Setter Property="FontSize" Value="15" />
    <Setter Property="SnapsToDevicePixels" Value="True" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border CornerRadius="4" Background="{TemplateBinding Background}">
                    <Grid>
                        <Path x:Name="PathIcon" Width="15" Height="25" Stretch="Fill" Fill="#4C87B3" HorizontalAlignment="Left" Margin="17,0,0,0"  Data="F1 M 30.0833,22.1667L 50.6665,37.6043L 50.6665,38.7918L 30.0833,53.8333L 30.0833,22.1667 Z "/>
                        <ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10,0,10"  />
                    </Grid>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="#E59400" />
                        <Setter Property="Foreground" Value="White" />
                        <Setter TargetName="PathIcon" Property="Fill" Value="Black" />
                    </Trigger>

                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="Background" Value="OrangeRed" />
                        <Setter Property="Foreground" Value="White" />
                    </Trigger>
                    <Trigger Property="IsFocused" Value="True">
                        <Setter Property="Background" Value="Gold" />
                        <Setter Property="Foreground" Value="White" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=Content.TxtSearch.IsFocused, ElementName=_mainFrame}" Value="True">
            <Setter Property="Background" Value="Red" />
        </DataTrigger>
    </Style.Triggers>
</Style>

如果您已使用属性将“框架的内容”设置为“页面”,则此方法将起作用:

<Frame x:Name="_mainFrame" BorderBrush="#FFBC9D0D" BorderThickness="5"  NavigationUIVisibility="Hidden"
       Source="Page1.xaml"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在另一个PHP页面的<DIV>中动态加载一个PHP页面?

来自分类Dev

更改另一个页面的元素属性

来自分类Dev

将页面中的多个复选框值获取到另一个页面中的文本框

来自分类Dev

无法传递文本框中的值以在另一个HTML页面中显示它

来自分类Dev

WPF如何在另一个页面中更改一个属性?

来自分类Dev

如何导航到另一个WPF页面

来自分类Dev

JSP:如何获取重定向到Java中另一个页面的页面的URL地址?

来自分类Dev

如何将值从输入文本框传递到Laravel中的另一个页面

来自分类Dev

如何从另一个页面导航到元素?

来自分类Dev

将文本框值转发到同一页面中的另一个隐藏文本框

来自分类Dev

如何从数组会话中获取选定的文本值到另一个页面

来自分类Dev

如何检查页面是Wordpress中另一个页面的直接子页面还是间接子页面?

来自分类Dev

无法传递文本框中的值以在另一个HTML页面中显示它

来自分类Dev

如何在另一个文本框中同时写入文本框值?

来自分类Dev

如何将一些值从文本框网格传递到另一个页面

来自分类Dev

通过文本框将数据从选择选项传递到另一个页面

来自分类Dev

如何导航到另一个WPF页面

来自分类Dev

如何将文本框的值传递到asp.net(vb)中的另一个页面

来自分类Dev

如何对另一个文本框中的数组文本框的所有输出求和

来自分类Dev

如何使用AngularJS将值从1个文本框绑定到C#中的另一个文本框

来自分类Dev

如何在另一个页面的变量中存储链接名称

来自分类Dev

将具有依赖项属性的值从一个类绑定到wpf中的另一个类文本框控件

来自分类Dev

如何从另一个页面获取文本框或下拉列表的值?

来自分类Dev

WPF:将 DataGridTemplateColumn 中的元素绑定到另一个 DataGridTemplateColumn 中的元素

来自分类Dev

如何将文本框值分配给 wpf 中的另一个类

来自分类Dev

将文本框输入传递到另一个页面时出现问题 - 特别是 javascript 和 html 中的名字和姓氏

来自分类Dev

从另一个页面导航回来后,UWP 无法在文本框中设置文本

来自分类Dev

如何重定向到rails中另一个页面的标签?

来自分类Dev

在 web.config 中从一个页面到另一个页面的简单重定向

Related 相关文章

  1. 1

    如何在另一个PHP页面的<DIV>中动态加载一个PHP页面?

  2. 2

    更改另一个页面的元素属性

  3. 3

    将页面中的多个复选框值获取到另一个页面中的文本框

  4. 4

    无法传递文本框中的值以在另一个HTML页面中显示它

  5. 5

    WPF如何在另一个页面中更改一个属性?

  6. 6

    如何导航到另一个WPF页面

  7. 7

    JSP:如何获取重定向到Java中另一个页面的页面的URL地址?

  8. 8

    如何将值从输入文本框传递到Laravel中的另一个页面

  9. 9

    如何从另一个页面导航到元素?

  10. 10

    将文本框值转发到同一页面中的另一个隐藏文本框

  11. 11

    如何从数组会话中获取选定的文本值到另一个页面

  12. 12

    如何检查页面是Wordpress中另一个页面的直接子页面还是间接子页面?

  13. 13

    无法传递文本框中的值以在另一个HTML页面中显示它

  14. 14

    如何在另一个文本框中同时写入文本框值?

  15. 15

    如何将一些值从文本框网格传递到另一个页面

  16. 16

    通过文本框将数据从选择选项传递到另一个页面

  17. 17

    如何导航到另一个WPF页面

  18. 18

    如何将文本框的值传递到asp.net(vb)中的另一个页面

  19. 19

    如何对另一个文本框中的数组文本框的所有输出求和

  20. 20

    如何使用AngularJS将值从1个文本框绑定到C#中的另一个文本框

  21. 21

    如何在另一个页面的变量中存储链接名称

  22. 22

    将具有依赖项属性的值从一个类绑定到wpf中的另一个类文本框控件

  23. 23

    如何从另一个页面获取文本框或下拉列表的值?

  24. 24

    WPF:将 DataGridTemplateColumn 中的元素绑定到另一个 DataGridTemplateColumn 中的元素

  25. 25

    如何将文本框值分配给 wpf 中的另一个类

  26. 26

    将文本框输入传递到另一个页面时出现问题 - 特别是 javascript 和 html 中的名字和姓氏

  27. 27

    从另一个页面导航回来后,UWP 无法在文本框中设置文本

  28. 28

    如何重定向到rails中另一个页面的标签?

  29. 29

    在 web.config 中从一个页面到另一个页面的简单重定向

热门标签

归档