مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

hossein626

عضویت از 1395/08/15

داک ویندوز داخل ویندوز پرنت

  • دوشنبه 27 دی 1395
  • 22:10
تشکر میکنم

سلام

یک ویندوز دارم که ویندوز اصلی نرم افزار هستش . می خوام ویندوزهای دیگه که show می شن داخل ویندوز اصلی dock بشن و parent شون ویندوز اصلی باشه. البته اگر بشه که چند تا ویندوز با هم show بشن و هرکدوم به صورت جداگانه به صورت تب باز بشن که عالیه.

می خوام این کار به صورت دینامیک و درون codeBehind انجام بشه و حتما از کنترل ویندوز استفاده کنم و از usercontrol استفاده نشه.

مرسی

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • چهارشنبه 29 دی 1395
  • 10:11

برای این کار کافی ست در صفحه اصلی خودتون یک منو و یک پنل (مثلا : stackpanel )داشته باشید که رویداد کلیک آیتم های منو usercontrol مورد نظر شما را داخل stackpanel شما لود کند ، به کد زیر توجه کنید :

XAML صفحه اصلی شما :

<Window x:Class="UserControlExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" FlowDirection="RightToLeft">
    <Border Background="White" BorderBrush="Black" BorderThickness="1,1,1,1" CornerRadius="10">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="25" />
                <RowDefinition Height="*"></RowDefinition>
            </Grid.RowDefinitions>
            <Menu>
                <MenuItem Click="btnUser1_Click" Header="ماشین حساب"/>
                <MenuItem Click="btnUser2_Click" Header="تصویر" />
            </Menu>
            <StackPanel Name="MyStack" Grid.Row="1" Height="Auto" Background="Beige">
                
            </StackPanel>
        </Grid>
    </Border>
</Window>

کد سی شارپ مربوط رویداد های منو های شما برای لود usercontrol :

private void btnUser1_Click(object sender, RoutedEventArgs e)
        {
            MyStack.Children.Clear();
            Calculator myu = new Calculator();
            myu.Width = MyStack.ActualWidth;
            myu.Height = MyStack.ActualHeight;
            MyStack.Children.Add(myu);
        }

        private void btnUser2_Click(object sender, RoutedEventArgs e)
        {
            MyStack.Children.Clear();
            ucImage myu = new ucImage();
            myu.Width = MyStack.ActualWidth;
            myu.Height = MyStack.ActualHeight;
            MyStack.Children.Add(myu);
        }

برای مثال Calculator و ucImage کلاس های usercontrol شما می باشد که از آن ها نمونه ای می سازیم و به stackpanel صفحه اصلی add میکنیم.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)