簡體   English   中英

集線器應用程序:Windows 8.1-在第1節中引用文本

[英]Hub App: Windows 8.1 - Referencing text in Section 1

我很難從下面的示例中了解VS 2015 for Windows 8.1的示例Hub App中XAML的TextBlocksText屬性的實際來源

<Page
    x:Name="pageRoot"
    x:Class="App2.HubPage"
    DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App2"
    xmlns:data="using:App2.Data"
    xmlns:common="using:App2.Common"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Hub SectionHeaderClick="Hub_SectionHeaderClick">
            <HubSection Width="500" x:Uid="Section1Header" Header="Section 1">
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <Image Source="Assets/MediumGray.png" Stretch="Fill" Width="420" Height="280"/>
                        <TextBlock Style="{StaticResource SubheaderTextBlockStyle}" Grid.Row="1" Margin="0,10,0,0" TextWrapping="Wrap"  
                                   x:Uid="Section1Subtitle" Text="{StaticResource AppName}"/>
                        <TextBlock Style="{StaticResource TitleTextBlockStyle}" Grid.Row="2" Margin="0,10,0,0" 
                                   x:Uid="DescriptionHeader" Text="Description text:"/>
                        <TextBlock Style="{StaticResource BodyTextBlockStyle}" Grid.Row="3"
                                   x:Uid="Section1DescriptionText" Text="Lorem ipsum dolor sit amet, consectetuer ising elit, sed diam nonummy nibh uismod tincidunt ut laoreet suscipit lobortis ni ut wisi quipexerci quis consequat minim veniam, quis nostrud exerci tation ullam corper. Lorem ipsum dolor sit amet, consectetuer ising elit, sed diam nonummy nibh uismod tincidunt ut laoreet suscipit lobortis ni ut wisi quipexerci quis consequat minim veniam, quis nostrud exerci tation ullam corper. "/>
                    </Grid>
                </DataTemplate>
            </HubSection>

現在,我很好奇的是。 如果我在任何TextBlocks編輯Text Property並運行該應用程序,它將被以前的值替換。 因此,如果我執行以下操作:

<TextBlock Style="{StaticResource TitleTextBlockStyle}" Grid.Row="2" Margin="0,10,0,0" 
                                   x:Uid="DescriptionHeader" Text="zzz TEST zzz:"/>

它會返回到執行之前的任何值。 它沒有綁定到SampleDataSource.json .json文件。 我可以看到的唯一連接是Resources.resw文件,其中包含與x:Uid對應的條目,例如`x:Uid =“ Section1Subtitle”。 如何通過x:Uid獲取和連接這些資源? 因為我想那是執行應用程序時發生的事情?

>>如何通過x:Uid獲取和連接這些資源?

因為您的應用程序中有Resources.resw文件 ,所以可以找到此文件以查看是否設置了DescriptionHeader.TextDescription.Width 就像下面提供的屏幕截圖一樣。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <TextBlock x:Uid="DescriptionHeader" Width="400" Height="100" Text="Cherry"></TextBlock>

在此處輸入圖片說明

盡管我在XAML中設置了Textblock.Text = Cherry ,但是我使用了x:Uid = DescriptionHeader屬性,並且在Resource.resw中設置了DescriptionHeader.Text = Hello ,因此當我運行應用程序時,Textblock.Text = Hello。

您可以將每個需要本地化文本的控件與.resw文件關聯。 您可以使用XAML元素上的x:Uid屬性來執行此操作。 對於資源名稱,可以提供Uid屬性值,還可以指定要獲取轉換后的字符串的屬性。 您可以為其他語言指定其他屬性/值,例如Greeting.Width,但請注意與布局相關的屬性。 您應該努力允許控件根據設備的屏幕進行動態布局。

關於x:Uid的詳細信息,請參閱使用字符串資源(XAML)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM