我正在写一个
Windows Phone 8.1应用程序(WinRT).
我的用户控件:
XAML:
- <UserControl x:Name="LoadingProgressBarPage"
- x:Class="Project1.Custom.General.UserControls.LoadingOverlayFullScreen"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:local="using:Merakyahoga.com.Custom.General.UserControls"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- mc:Ignorable="d"
- FontFamily="{StaticResource PhoneFontFamilyNormal}"
- Foreground="{x:Null}"
- d:DesignHeight="800" d:DesignWidth="480" >
- <Grid x:Name="LayoutRoot">
- <Grid.RowDefinitions>
- <RowDefinition Height="1*"/>
- <RowDefinition Height="1*"/>
- <RowDefinition Height="1*"/>
- </Grid.RowDefinitions>
- <StackPanel
- Name="LayoutRoot_StackPanelMain"
- Grid.Row="1"
- Orientation="Vertical">
- <ProgressBar Name="ProgressBar"
- IsIndeterminate="True"
- Foreground="{StaticResource DefaultTheme_DarkBlueColor}"
- Height="50"
- Width="480"
- VerticalAlignment="Center"/>
- <StackPanel Name="LayoutRoot_SubStackPanel"
- Orientation="Horizontal"
- HorizontalAlignment="Center"
- VerticalAlignment="Center">
- <Image Name="ImageHolder_Main"
- Width="54">
- </Image>
- <TextBlock Name="ProgressBarText"
- Text="Please Wait.."
- Margin="10,0"
- FontWeight="Normal"
- HorizontalAlignment="Center"
- FontSize="18"
- Foreground="{StaticResource DefaultTheme_DarkBlueColor}" VerticalAlignment="Center"/>
- </StackPanel>
- </StackPanel>
- </Grid>
CS:
- namespace Project1.Custom.General.UserControls
- {
- public partial class LoadingOverlayFullScreen : UserControl
- {
- public LoadingOverlayFullScreen()
- {
- InitializeComponent()
- //WINRT:
- this.LayoutRoot.Height = Window.Current.Bounds.Height;
- this.LayoutRoot.Width = Window.Current.Bounds.Width;
- }
- }
- }
在我的mainpage.cs中:
- LoadingOverlayFullScreen LoadingOverlayFullScreenObject = new LoadingOverlayFullScreen();
- //test:
- LoadingOverlayFullScreenObject.ProgressBarText = "Hello"; //ERROR Here >> **element inaccessible due to its protection level**
解决方法
@H_502_18@ 通过命名TextBlock元素,可以使XAML编译器生成具有该名称的类成员,即ProgressBarText.但该成员的可访问性不是公开的,而是内部的.如果您确实希望该字段是公共的,则可以添加x:FieldModifier属性:
- <TextBlock Name="ProgressBarText"
- x:FieldModifier="public"
- Text="Please Wait.."
- Margin="10,0"
- FontWeight="Normal"
- HorizontalAlignment="Center"
- FontSize="18"
- Foreground="{StaticResource DefaultTheme_DarkBlueColor}"
- VerticalAlignment="Center"/>
也就是说,最好将TextBlock对象的Text属性公开为代码隐藏中的字符串属性.或者甚至更好,使用数据绑定来控制TextBlock的Text值(但是你的代码示例不够完整,我不能说你将如何做到这一点).