【问题标题】:Problem with Template in SilverlightSilverlight 中的模板问题
【发布时间】:2011-07-27 14:15:20
【问题描述】:

我有一个正在尝试设置样式的 Silverlight 应用程序。当控件获得焦点时,这种样式只会淡入不同的颜色边框。当控件没有焦点时,我希望它恢复到原来的样子。我的风格目前有两个问题:

  1. 当用户在 TextBox 中单击时,如果鼠标光标位于右边缘上,则似乎会在右边缘添加一个 1 像素的边框。但是,如果我在控件获得焦点时将鼠标光标移出,则只会在右边缘出现间隙。
  2. 我的转换似乎没有从聚焦状态淡化到非选择状态。

有人可以查看我的模板并帮助我确定我做错了什么吗?我已将我的代码包含在其中,您应该可以复制和粘贴它。

<sdk:Page   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"   xmlns:System="clr-namespace:System;assembly=mscorlib"
    xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" xmlns:ee="http://schemas.microsoft.com/expression/2010/effects"
    mc:Ignorable="d"
    x:Class="InputFocusBlur.Input"
    Title="Input Page"
    d:DesignWidth="640" d:DesignHeight="480">

  <sdk:Page.Resources>
    <ControlTemplate x:Key="ValidationToolTipTemplate">
      <Grid x:Name="Root" Margin="5,0" Opacity="0" RenderTransformOrigin="0,0">
        <Grid.RenderTransform>
          <TranslateTransform x:Name="xform" X="-25"/>
        </Grid.RenderTransform>
        <VisualStateManager.VisualStateGroups>
          <VisualStateGroup x:Name="OpenStates">
            <VisualStateGroup.Transitions>
              <VisualTransition GeneratedDuration="0"/>
              <VisualTransition GeneratedDuration="0:0:0.2" To="Open">
                <Storyboard>
                  <DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="X" Storyboard.TargetName="xform">
                    <DoubleAnimation.EasingFunction>
                      <BackEase Amplitude=".3" EasingMode="EaseOut"/>
                    </DoubleAnimation.EasingFunction>
                  </DoubleAnimation>
                  <DoubleAnimation Duration="0:0:0.2" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root"/>
                </Storyboard>
              </VisualTransition>
            </VisualStateGroup.Transitions>
            <VisualState x:Name="Closed">
              <Storyboard>
                <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root"/>
              </Storyboard>
            </VisualState>
            <VisualState x:Name="Open">
              <Storyboard>
                <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="X" Storyboard.TargetName="xform"/>
                <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root"/>
              </Storyboard>
            </VisualState>
          </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <Border Background="#052A2E31" CornerRadius="5" Margin="4,4,-4,-4"/>
        <Border Background="#152A2E31" CornerRadius="4" Margin="3,3,-3,-3"/>
        <Border Background="#252A2E31" CornerRadius="3" Margin="2,2,-2,-2"/>
        <Border Background="#352A2E31" CornerRadius="2" Margin="1,1,-1,-1"/>
        <Border Background="#FFDC000C" CornerRadius="2"/>
        <Border CornerRadius="2">
          <TextBlock Foreground="White" MaxWidth="250" Margin="8,4,8,4" TextWrapping="Wrap" Text="{Binding (Validation.Errors)[0].ErrorContent}" UseLayoutRounding="false"/>
        </Border>
      </Grid>
    </ControlTemplate>
    <Style x:Key="myField" TargetType="TextBox">
      <Setter Property="BorderThickness" Value="1"/>
      <Setter Property="Background" Value="#FFFFFFFF"/>
      <Setter Property="Foreground" Value="#FF000000"/>
      <Setter Property="Padding" Value="2"/>
      <Setter Property="BorderBrush">
        <Setter.Value>
          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FFA3AEB9" Offset="0"/>
            <GradientStop Color="#FF8399A9" Offset="0.375"/>
            <GradientStop Color="#FF718597" Offset="0.375"/>
            <GradientStop Color="#FF617584" Offset="1"/>
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="TextBox">
            <Grid x:Name="RootElement">
              <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                  <VisualStateGroup.Transitions>
                    <VisualTransition GeneratedDuration="0:0:0.7" To="MouseOver">
                      <ei:ExtendedVisualStateManager.TransitionEffect>
                        <ee:FadeTransitionEffect/>
                      </ei:ExtendedVisualStateManager.TransitionEffect>
                    </VisualTransition>
                  </VisualStateGroup.Transitions>
                  <VisualState x:Name="Normal"/>
                  <VisualState x:Name="MouseOver">
                    <Storyboard>
                      <ColorAnimation Duration="0" To="#FF11DA0B" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="MouseOverBorder"/>
                      <ColorAnimation Duration="0" To="#FF11DA0B" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="FocusVisualElement" d:IsOptimized="True"/>
                      <ColorAnimation Duration="0" To="#FF11DA0B" Storyboard.TargetProperty="(Control.BorderBrush).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="ContentElement" d:IsOptimized="True"/>
                      <ColorAnimation Duration="0" To="#FF11DA0B" Storyboard.TargetProperty="(Control.BorderBrush).(GradientBrush.GradientStops)[0].(GradientStop.Color)" Storyboard.TargetName="ContentElement" d:IsOptimized="True"/>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderThickness)" Storyboard.TargetName="FocusVisualElement">
                        <DiscreteObjectKeyFrame KeyTime="0">
                          <DiscreteObjectKeyFrame.Value>
                            <Thickness>1</Thickness>
                          </DiscreteObjectKeyFrame.Value>
                        </DiscreteObjectKeyFrame>
                      </ObjectAnimationUsingKeyFrames>
                      <ColorAnimation Duration="0" To="#FF11DA0B" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="Border" d:IsOptimized="True"/>
                    </Storyboard>
                  </VisualState>
                  <VisualState x:Name="Disabled">
                    <Storyboard>
                      <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="DisabledVisualElement"/>
                    </Storyboard>
                  </VisualState>
                  <VisualState x:Name="ReadOnly">
                    <Storyboard>
                      <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="ReadOnlyVisualElement"/>
                    </Storyboard>
                  </VisualState>
                </VisualStateGroup>
                <VisualStateGroup x:Name="FocusStates">
                  <VisualStateGroup.Transitions>
                    <VisualTransition GeneratedDuration="0:0:0.7" To="Unfocused">
                      <ei:ExtendedVisualStateManager.TransitionEffect>
                        <ee:FadeTransitionEffect/>
                      </ei:ExtendedVisualStateManager.TransitionEffect>
                    </VisualTransition>
                  </VisualStateGroup.Transitions>
                  <VisualState x:Name="Focused">
                    <Storyboard>
                      <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement"/>
                      <ColorAnimation Duration="0" To="#FF11DA0B" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="Border" d:IsOptimized="True"/>
                      <ColorAnimation Duration="0" To="#FF11DA0B" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="FocusVisualElement" d:IsOptimized="True"/>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderThickness)" Storyboard.TargetName="FocusVisualElement">
                        <DiscreteObjectKeyFrame KeyTime="0">
                          <DiscreteObjectKeyFrame.Value>
                            <Thickness>1</Thickness>
                          </DiscreteObjectKeyFrame.Value>
                        </DiscreteObjectKeyFrame>
                      </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                  </VisualState>
                  <VisualState x:Name="Unfocused">
                    <Storyboard>
                      <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement"/>
                    </Storyboard>
                  </VisualState>
                </VisualStateGroup>
                <VisualStateGroup x:Name="ValidationStates">
                  <VisualState x:Name="Valid"/>
                  <VisualState x:Name="InvalidUnfocused">
                    <Storyboard>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement">
                        <DiscreteObjectKeyFrame KeyTime="0">
                          <DiscreteObjectKeyFrame.Value>
                            <Visibility>Visible</Visibility>
                          </DiscreteObjectKeyFrame.Value>
                        </DiscreteObjectKeyFrame>
                      </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                  </VisualState>
                  <VisualState x:Name="InvalidFocused">
                    <Storyboard>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement">
                        <DiscreteObjectKeyFrame KeyTime="0">
                          <DiscreteObjectKeyFrame.Value>
                            <Visibility>Visible</Visibility>
                          </DiscreteObjectKeyFrame.Value>
                        </DiscreteObjectKeyFrame>
                      </ObjectAnimationUsingKeyFrames>
                      <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="validationTooltip">
                        <DiscreteObjectKeyFrame KeyTime="0">
                          <DiscreteObjectKeyFrame.Value>
                            <System:Boolean>True</System:Boolean>
                          </DiscreteObjectKeyFrame.Value>
                        </DiscreteObjectKeyFrame>
                      </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                  </VisualState>
                </VisualStateGroup>
              </VisualStateManager.VisualStateGroups>
              <VisualStateManager.CustomVisualStateManager>
                <ei:ExtendedVisualStateManager/>
              </VisualStateManager.CustomVisualStateManager>
              <Border x:Name="Border" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="1" Opacity="1" Margin="1,0,-1,0" BorderBrush="Black">
                <Grid>
                  <Border x:Name="ReadOnlyVisualElement" Background="#5EC9C9C9" Opacity="0"/>
                  <Border x:Name="MouseOverBorder" BorderBrush="Transparent" BorderThickness="1">
                    <ScrollViewer x:Name="ContentElement" BorderThickness="0" IsTabStop="False" Padding="{TemplateBinding Padding}"/>
                  </Border>
                </Grid>
              </Border>
              <Border x:Name="DisabledVisualElement" BorderBrush="#A5F7F7F7" BorderThickness="{TemplateBinding BorderThickness}" Background="#A5F7F7F7" IsHitTestVisible="False" Opacity="0"/>
              <Border x:Name="FocusVisualElement" BorderBrush="#FF6DBDD1" IsHitTestVisible="False" Margin="1" Opacity="0"/>
              <Border x:Name="ValidationErrorElement" BorderBrush="#FFDB000C" BorderThickness="1" CornerRadius="1" Visibility="Collapsed">
                <ToolTipService.ToolTip>
                  <ToolTip x:Name="validationTooltip" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Placement="Right" PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource ValidationToolTipTemplate}">
                    <ToolTip.Triggers>
                      <EventTrigger RoutedEvent="Canvas.Loaded">
                        <BeginStoryboard>
                          <Storyboard>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsHitTestVisible" Storyboard.TargetName="validationTooltip">
                              <DiscreteObjectKeyFrame KeyTime="0">
                                <DiscreteObjectKeyFrame.Value>
                                  <System:Boolean>true</System:Boolean>
                                </DiscreteObjectKeyFrame.Value>
                              </DiscreteObjectKeyFrame>
                            </ObjectAnimationUsingKeyFrames>
                          </Storyboard>
                        </BeginStoryboard>
                      </EventTrigger>
                    </ToolTip.Triggers>
                  </ToolTip>
                </ToolTipService.ToolTip>
                <Grid Background="Transparent" HorizontalAlignment="Right" Height="12" Margin="1,-4,-4,0" VerticalAlignment="Top" Width="12">
                  <Path Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z" Fill="#FFDC000C" Margin="1,3,0,0"/>
                  <Path Data="M 0,0 L2,0 L 8,6 L8,8" Fill="#ffffff" Margin="1,3,0,0"/>
                </Grid>
              </Border>
            </Grid>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </sdk:Page.Resources>

  <Grid x:Name="LayoutRoot" Background="White" >
    <TextBox HorizontalAlignment="Left" Height="29" Margin="48,194,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="270" Style="{StaticResource myField}"/>
  </Grid>
</sdk:Page>

【问题讨论】:

    标签: silverlight templates xaml


    【解决方案1】:

    你的 myfield 风格有几个问题。首先,您正在更改位于不同 VisualStateGroups 中的 Visual States 中的相同属性。这可能导致不稳定的行为(如果您打开模板,Blend 会显示此警告)。

    其次,您要控制焦点元素的边框颜色以及主边框。随便挑一个就行了。

    在解决了这些问题后尝试使用这种样式。我想这就是你要找的东西:

    <Style x:Key="myField"
               TargetType="TextBox">
            <Setter Property="BorderThickness"
                    Value="1" />
            <Setter Property="Background"
                    Value="#FFFFFFFF" />
            <Setter Property="Foreground"
                    Value="#FF000000" />
            <Setter Property="Padding"
                    Value="2" />
            <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1"
                                         StartPoint="0.5,0">
                        <GradientStop Color="#FFA3AEB9"
                                      Offset="0" />
                        <GradientStop Color="#FF8399A9"
                                      Offset="0.375" />
                        <GradientStop Color="#FF718597"
                                      Offset="0.375" />
                        <GradientStop Color="#FF617584"
                                      Offset="1" />
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="TextBox">
                        <Grid x:Name="RootElement">
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
    
                                    <VisualStateGroup.Transitions>
                                        <VisualTransition GeneratedDuration="0:0:0.7"/>
                                    </VisualStateGroup.Transitions>
    
                                    <VisualState x:Name="Normal" />
                                    <VisualState x:Name="MouseOver">                                        
                                        <Storyboard>
                                            <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="MouseOverBorder" d:IsOptimized="True"/>
    
                                        </Storyboard>                                        
                                    </VisualState>
                                    <VisualState x:Name="Disabled">
                                        <Storyboard>
                                            <DoubleAnimation Duration="0"
                                                To="1"
                                                Storyboard.TargetProperty="Opacity"
                                                Storyboard.TargetName="DisabledVisualElement" />
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="ReadOnly">
                                        <Storyboard>
                                            <DoubleAnimation Duration="0"
                                                To="1"
                                                Storyboard.TargetProperty="Opacity"
                                                Storyboard.TargetName="ReadOnlyVisualElement" />
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="FocusStates">
                                    <VisualStateGroup.Transitions>
                                        <VisualTransition GeneratedDuration="0:0:0.7"/>
                                    </VisualStateGroup.Transitions>
                                    <VisualState x:Name="Focused">
                                        <Storyboard>
                                            <DoubleAnimation Duration="0"
                                                To="1"
                                                Storyboard.TargetProperty="Opacity"
                                                Storyboard.TargetName="FocusVisualElement" />
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Unfocused">
                                        <Storyboard/>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="ValidationStates">
                                    <VisualState x:Name="Valid" />
                                    <VisualState x:Name="InvalidUnfocused">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility"
                                                                           Storyboard.TargetName="ValidationErrorElement">
                                                <DiscreteObjectKeyFrame KeyTime="0">
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <Visibility>Visible</Visibility>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="InvalidFocused">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility"
                                                                           Storyboard.TargetName="ValidationErrorElement">
                                                <DiscreteObjectKeyFrame KeyTime="0">
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <Visibility>Visible</Visibility>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsOpen"
                                                                           Storyboard.TargetName="validationTooltip">
                                                <DiscreteObjectKeyFrame KeyTime="0">
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <System:Boolean>True</System:Boolean>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <VisualStateManager.CustomVisualStateManager>
                                <ei:ExtendedVisualStateManager />
                            </VisualStateManager.CustomVisualStateManager>
                            <Border x:Name="Border"
                                    Background="{TemplateBinding Background}"
                                    CornerRadius="1"
                                    Opacity="1"
                                    BorderBrush="Black"
                                    BorderThickness="1">
                                <Grid>
                                    <Border x:Name="ReadOnlyVisualElement"
                                            Background="#5EC9C9C9"
                                            Opacity="0" />
                                        <ScrollViewer x:Name="ContentElement"
                                                      BorderThickness="0"
                                                      IsTabStop="False"
                                                      Padding="{TemplateBinding Padding}" />
                                </Grid>
                            </Border>
                            <Border x:Name="DisabledVisualElement"
                                    BorderBrush="#A5F7F7F7"
                                    BorderThickness="{TemplateBinding BorderThickness}"
                                    Background="#A5F7F7F7"
                                    IsHitTestVisible="False"
                                    Opacity="0" />
                            <Border x:Name="FocusVisualElement"
                                    BorderBrush="#FF11DA0B"
                                    IsHitTestVisible="False"
                                    Margin="0"
                                    Opacity="0"
                                    BorderThickness="2" />
                            <Border x:Name="MouseOverBorder"
                                    BorderBrush="#FF11DA0B"
                                    IsHitTestVisible="False"
                                    Margin="0"
                                    Opacity="0" 
                                    BorderThickness="2"/>
                            <Border x:Name="ValidationErrorElement"
                                    BorderBrush="#FFDB000C"
                                    BorderThickness="1"
                                    CornerRadius="1"
                                    Visibility="Collapsed">
                                <ToolTipService.ToolTip>
                                    <ToolTip x:Name="validationTooltip"
                                             DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                                             Placement="Right"
                                             PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                                             Template="{StaticResource ValidationToolTipTemplate}">
                                        <ToolTip.Triggers>
                                            <EventTrigger RoutedEvent="Canvas.Loaded">
                                                <BeginStoryboard>
                                                    <Storyboard>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsHitTestVisible"
                                                                                       Storyboard.TargetName="validationTooltip">
                                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                                <DiscreteObjectKeyFrame.Value>
                                                                    <System:Boolean>true</System:Boolean>
                                                                </DiscreteObjectKeyFrame.Value>
                                                            </DiscreteObjectKeyFrame>
                                                        </ObjectAnimationUsingKeyFrames>
                                                    </Storyboard>
                                                </BeginStoryboard>
                                            </EventTrigger>
                                        </ToolTip.Triggers>
                                    </ToolTip>
                                </ToolTipService.ToolTip>
                                <Grid Background="Transparent"
                                      HorizontalAlignment="Right"
                                      Height="12"
                                      Margin="1,-4,-4,0"
                                      VerticalAlignment="Top"
                                      Width="12">
                                    <Path Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z"
                                          Fill="#FFDC000C"
                                          Margin="1,3,0,0" />
                                    <Path Data="M 0,0 L2,0 L 8,6 L8,8"
                                          Fill="#ffffff"
                                          Margin="1,3,0,0" />
                                </Grid>
                            </Border>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    

    【讨论】:

    • 感谢您的反馈。但是,我的挑战是,当控件有鼠标悬停或有焦点时,我希望边框的大小为 2px。但是,当控件处于正常状态或失去焦点时,我希望它恢复为 1px 边框。这似乎是导致问题的原因。感谢您的尝试!
    • 我刚刚编辑了代码并重新发布以包括鼠标悬停更改以及边框厚度为 2 的更改
    • 我的话!非常感谢你的帮助。对于我的生活,我无法让它做到这一点。你是男人(或女人)!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多