none
“Calendar”控件和“Button”控件 RRS feed

  • 问题

  • 问题一:如何直接选择年份,而不是当点击“年份”时会弹出“月份”,点击“月份”再弹出“日期(天)”???

    问题二:“Button”有什么属性,为什么图片不能填充满???

    XAML:

    <Canvas Margin="22,130,246,85">
            <TextBlock Text="日期:" TextWrapping="Wrap" Height="16" Canvas.Left="39" Canvas.Top="33" Width="33" d:LayoutOverrides="HorizontalAlignment, VerticalAlignment" />
            <ComboBox Height="23" x:Name="cb_Period" Width="47" SelectionChanged="cb_Period_SelectionChanged" Canvas.Left="73" Canvas.Top="29" d:LayoutOverrides="VerticalAlignment, Height">
            <ComboBoxItem Content="日" IsSelected="True" />
            <ComboBoxItem Content="月" />
            <ComboBoxItem Content="年" />
            </ComboBox>
            <TextBox Height="23" x:Name="tb_DateTime" Width="85" Canvas.Left="126" Canvas.Top="29" d:LayoutOverrides="VerticalAlignment, Height" />
            <Button Height="24" x:Name="Bt_DateTime" Width="27" Click="Bt_DateTime_Click" Canvas.Left="217" Canvas.Top="29" d:LayoutOverrides="HorizontalAlignment, VerticalAlignment, Width, Height">
            <Image Height="18" Source="/MyCharts;component/Images/01.png" Width="19" />
            </Button>
            <sdk:Calendar Height="168" x:Name="cd_DateTime" Visibility="Visible" Width="178" Canvas.Left="39" Canvas.Top="58" d:LayoutOverrides="HorizontalAlignment, Width, Height" />
            </Canvas>



    有精到广,做出自己的特色。

    2012年4月28日 4:45

答案

  • 你好,首先第二个问题:

    Button 的 Padding设置为0,然后Image的Margin设置为0,然后Height设置为24,width设置为27即可.

                <Button Height="24" Padding="0" x:Name="Bt_DateTime" Width="27" Click="Bt_DateTime_Click" Canvas.Left="217" Canvas.Top="29" d:LayoutOverrides="HorizontalAlignment, VerticalAlignment, Width, Height">
                    <Image Height="24" Margin="0" Source="/MyCharts;component/Images/01.png" Width="27" />
                </Button>

    然后第一个问题,

    你回发现实际Calender有个DisplayMode属性,来设置年月日的.

    • 已标记为答案 Otomii Lu 2012年5月8日 6:33
    2012年4月30日 5:33

全部回复

  • 救急啊,大师。。。

    有精到广,做出自己的特色。

    2012年4月29日 4:54
  • 你好,首先第二个问题:

    Button 的 Padding设置为0,然后Image的Margin设置为0,然后Height设置为24,width设置为27即可.

                <Button Height="24" Padding="0" x:Name="Bt_DateTime" Width="27" Click="Bt_DateTime_Click" Canvas.Left="217" Canvas.Top="29" d:LayoutOverrides="HorizontalAlignment, VerticalAlignment, Width, Height">
                    <Image Height="24" Margin="0" Source="/MyCharts;component/Images/01.png" Width="27" />
                </Button>

    然后第一个问题,

    你回发现实际Calender有个DisplayMode属性,来设置年月日的.

    • 已标记为答案 Otomii Lu 2012年5月8日 6:33
    2012年4月30日 5:33
  • 你好,首先第二个问题:

    Button 的 Padding设置为0,然后Image的Margin设置为0,然后Height设置为24,width设置为27即可.

                <Button Height="24" Padding="0" x:Name="Bt_DateTime" Width="27" Click="Bt_DateTime_Click" Canvas.Left="217" Canvas.Top="29" d:LayoutOverrides="HorizontalAlignment, VerticalAlignment, Width, Height">
                    <Image Height="24" Margin="0" Source="/MyCharts;component/Images/01.png" Width="27" />
                </Button>

    然后第一个问题,

    你回发现实际Calender有个DisplayMode属性,来设置年月日的.

    Tanks  a  lot...

    问题一:如何直接选择年份,而不是当点击“年份”时会弹出“月份”,点击“月份”再弹出“日期(天)”???

    意思是,不能只选择年份。当“DisplayMode=Decade”时,Cender控件是显示的年份,但当点击年份时,就会从年份跳到月份,再点击月份,就会跳到天数,不能直接选择到年啊。。。


    Science and technology is my lover.

    2012年5月7日 5:58
  • Hi,很抱歉误解了你的意思.

    请尝试下以下代码:

        <Grid x:Name="LayoutRoot" Background="White">
            <sdk:Calendar Height="168"  DisplayMode="Decade" x:Name="cd_DateTime" Visibility="Visible" Width="178" Canvas.Left="39" Canvas.Top="58" d:LayoutOverrides="HorizontalAlignment, Width, Height" DisplayDateChanged="cd_DateTime_DisplayDateChanged" DisplayModeChanged="cd_DateTime_DisplayModeChanged" Margin="12,66,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" />
            <TextBlock Margin="12,37,0,0" Name="textBlock1" Text="Selected Year" Height="23" VerticalAlignment="Top" HorizontalAlignment="Left" Width="84" />
        </Grid>

        public partial class MainPage : UserControl
        {
            public MainPage()
            {
                InitializeComponent();
            }
            private void cd_DateTime_DisplayDateChanged(object sender, CalendarDateChangedEventArgs e)
            {
                textBlock1.Text = cd_DateTime.DisplayDate.Year.ToString();
                cd_DateTime.DisplayMode = CalendarMode.Decade;
            }
    
            private void cd_DateTime_DisplayModeChanged(object sender, CalendarModeChangedEventArgs e)
            {
                if (cd_DateTime!=null)
                    cd_DateTime.DisplayMode = CalendarMode.Decade;
            }
        }

    • 已建议为答案 Otomii Lu 2012年5月8日 2:28
    2012年5月8日 2:28