如何访问页面的元素以绑定到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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何导航到另一个WPF页面

来自分类Dev

如何导航到另一个WPF页面

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

    如何导航到另一个WPF页面

  19. 19

    如何导航到另一个WPF页面

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

热门标签

归档