نمایش نتایج 1 تا 5 از 5

نام تاپیک: از چه روشی پنجره ی اصلی بدون ToolBar در WPF میسازید؟

  1. #1

    از چه روشی پنجره ی اصلی بدون ToolBar در WPF میسازید؟

    سلام

    دوستان ، از چه روشی پنجره ی اصلی بدون ToolBar در WPF میسازید؟ (با قابلیت تغییر اندازه) .

    یک روش که ست کردن پروپرتی های WindowStyle به مقدار None و همچنین پروپرتی ResizeMode به مقدار CanResizeWithGrip و همچنین پروپرتی AllowsTransparency به True هست .
    یک روش دیگه هم استفاده از متد WndProc (روش دیگه ای وجود داشته باشه یا نه را نمیدونم) .


    در روش اول ، وقتی پروپرتی AllowsTransparency به True ست بشه ، ممکنه با بعضی از کمپوننت ها و موارد دیگه ، ناسازگاری بوجود بیاد .
    میخواستم ببینم کسانی که در wpf این کار را کردن ، در پروژه شون ناسازگاری داشتن؟ و اینکه از چه روشی استفاده کردن؟


    من از کنترل های wpf (کنترل هایی که مایکروسافت در دات نت فریم وورک برای wpf تعبیه کرد بجز web browser) و همچنین از کمپوننت ToolKit و Hardcodet.Wpf.TaskbarNotification.TaskbarIcon استفاده میکنم .
    بسیار بعید میدونم که از کمپوننت شرکت های دیگه مثل تلریک و اینها استفاده کنم .
    اگه روش اول مشکل خاصی نداشته باشه ، شخصا این روش را ترجیح میدم .

    تشکر

  2. #2

    نقل قول: از چه روشی پنجره ی اصلی بدون ToolBar در WPF میسازید؟

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    سلام

    دوستان ، از چه روشی پنجره ی اصلی بدون ToolBar در WPF میسازید؟ (با قابلیت تغییر اندازه) .

    یک روش که ست کردن پروپرتی های WindowStyle به مقدار None و همچنین پروپرتی ResizeMode به مقدار CanResizeWithGrip و همچنین پروپرتی AllowsTransparency به True هست .
    یک روش دیگه هم استفاده از متد WndProc (روش دیگه ای وجود داشته باشه یا نه را نمیدونم) .


    در روش اول ، وقتی پروپرتی AllowsTransparency به True ست بشه ، ممکنه با بعضی از کمپوننت ها و موارد دیگه ، ناسازگاری بوجود بیاد .
    میخواستم ببینم کسانی که در wpf این کار را کردن ، در پروژه شون ناسازگاری داشتن؟ و اینکه از چه روشی استفاده کردن؟


    من از کنترل های wpf (کنترل هایی که مایکروسافت در دات نت فریم وورک برای wpf تعبیه کرد بجز web browser) و همچنین از کمپوننت ToolKit و Hardcodet.Wpf.TaskbarNotification.TaskbarIcon استفاده میکنم .
    بسیار بعید میدونم که از کمپوننت شرکت های دیگه مثل تلریک و اینها استفاده کنم .
    اگه روش اول مشکل خاصی نداشته باشه ، شخصا این روش را ترجیح میدم .

    تشکر
    اینکه از allowtransparency استفاده کردید فکر کنم میخاید گوشه های پنجره رو گرد کنید درسته؟
    allowtransparency برنامه رو کند میکنه و خودشم یسری باگ داره بهتره از همون WndProc استفاده کنید یا روش های دیگه (خودتون تمپلت رو پیاده سازی کنید یه بوردر قرار بدید و cornerradius رو ست کنید تا گوشه ها گرد بشه)
    استفاده از پراپرتی کلیپ هم ممکنه راهگشا باشه
    <Window ....
    <Window.Clip>
    <RectangleGeometry Rect="0,0,857,483" RadiusX="25" RadiusY="25"/>
    </Window.Clip>
    </Window>

  3. #3

    نقل قول: از چه روشی پنجره ی اصلی بدون ToolBar در WPF میسازید؟

    نقل قول نوشته شده توسط barnamenevisjavan مشاهده تاپیک
    اینکه از allowtransparency استفاده کردید فکر کنم میخاید گوشه های پنجره رو گرد کنید درسته؟
    allowtransparency برنامه رو کند میکنه و خودشم یسری باگ داره بهتره از همون WndProc استفاده کنید یا روش های دیگه (خودتون تمپلت رو پیاده سازی کنید یه بوردر قرار بدید و cornerradius رو ست کنید تا گوشه ها گرد بشه)
    استفاده از پراپرتی کلیپ هم ممکنه راهگشا باشه
    <Window ....
    <Window.Clip>
    <RectangleGeometry Rect="0,0,857,483" RadiusX="25" RadiusY="25"/>
    </Window.Clip>
    </Window>
    سلام دوست عزیز .
    خیلی ممنون .

    نه . نمیخوام گوشه هاش را گرد کنم . فقط میخوام tool bar پیش فرض پنجره ی اصلی در wpf بصورت کامل حذف کنم تا tool bar اختصاصی خودم را طراحی کنم (tool bar خودم ، گرد نیست) . و هم اینکه قابلیت تغییر اندازه ی پنجره با موس را داشته باشه .

    باگش را نمیدونم اما شما از این AllowTransparency استفاده کردید؟ اگه آره و اگه مشکلی داشتید ، مشکلاتش چی بود دقیقا (بجز کندی)؟

  4. #4

    نقل قول: از چه روشی پنجره ی اصلی بدون ToolBar در WPF میسازید؟

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    سلام دوست عزیز .
    خیلی ممنون .

    نه . نمیخوام گوشه هاش را گرد کنم . فقط میخوام tool bar پیش فرض پنجره ی اصلی در wpf بصورت کامل حذف کنم تا tool bar اختصاصی خودم را طراحی کنم (tool bar خودم ، گرد نیست) . و هم اینکه قابلیت تغییر اندازه ی پنجره با موس را داشته باشه .

    باگش را نمیدونم اما شما از این AllowTransparency استفاده کردید؟ اگه آره و اگه مشکلی داشتید ، مشکلاتش چی بود دقیقا (بجز کندی)؟
    نیازی به allowtransparency نیست شما برای ویندوز تمپلت ایجاد کنید اونجا تولبار خودتون رو ایجاد کنید بصورت پیشفرض چون از کنترل ویندوز ارث بری میکنید براش تمپلت مینویسید امکان تغییر اندازه رو داره حالا اگر منظور شما اون ایکون فلش مانند پایین سمت راست هست میتونید از resizegrip استفاده کنید
    این یه استایل برای کنترل Resizegrip هستش که امکان تغییر سایز رو فراهم میکنه
    <Style TargetType="ResizeGrip">
    <Setter Property="MinWidth" Value="11"/>
    <Setter Property="MinHeight" Value="11"/>
    <Setter Property="Width" Value="11"/>
    <Setter Property="Height" Value="11"/>
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Template">
    <Setter.Value>
    <ControlTemplate TargetType="ResizeGrip">
    <grid Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
    <Path Width="11" Height="11" Data="M 9,0 L 11,0 L 11,11 L 0,11 L 0,9 L 3,9 L 3,6 L 6,6 L 6,3 L 9,3 z" HorizontalAlignment="Right" VerticalAlignment="Bottom">
    <Path.Fill>
    <DrawingBrush TileMode="Tile" Viewbox="0,0,3,3" Viewport="0,0,3,3" ViewportUnits="Absolute" ViewboxUnits="Absolute">
    <DrawingBrush.Drawing>
    <DrawingGroup>
    <GeometryDrawing Brush="{StaticResource ResizeGripperForeground}">
    <GeometryDrawing.Geometry>
    <RectangleGeometry Rect="0,0,2,2"/>
    </GeometryDrawing.Geometry>
    </GeometryDrawing>
    </DrawingGroup>
    </DrawingBrush.Drawing>
    </DrawingBrush>
    </Path.Fill>
    </Path>
    </grid>
    </ControlTemplate>
    </Setter.Value>
    </Setter>
    </Style>


    داخل تمپلت ویندوز در مکان مناسب ریسایز گریپ رو بزارید


    <ResizeGrip Width="10" Height="10" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Row="1" IsTabStop="False" Visibility="Collapsed" WindowChrome.ResizeGripDirection="BottomRight" />

  5. #5

    نقل قول: از چه روشی پنجره ی اصلی بدون ToolBar در WPF میسازید؟

    نقل قول نوشته شده توسط barnamenevisjavan مشاهده تاپیک
    نیازی به allowtransparency نیست شما برای ویندوز تمپلت ایجاد کنید اونجا تولبار خودتون رو ایجاد کنید بصورت پیشفرض چون از کنترل ویندوز ارث بری میکنید براش تمپلت مینویسید امکان تغییر اندازه رو داره حالا اگر منظور شما اون ایکون فلش مانند پایین سمت راست هست میتونید از resizegrip استفاده کنید
    این یه استایل برای کنترل Resizegrip هستش که امکان تغییر سایز رو فراهم میکنه
    <Style TargetType="ResizeGrip">
    <Setter Property="MinWidth" Value="11"/>
    <Setter Property="MinHeight" Value="11"/>
    <Setter Property="Width" Value="11"/>
    <Setter Property="Height" Value="11"/>
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Template">
    <Setter.Value>
    <ControlTemplate TargetType="ResizeGrip">
    <grid Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
    <Path Width="11" Height="11" Data="M 9,0 L 11,0 L 11,11 L 0,11 L 0,9 L 3,9 L 3,6 L 6,6 L 6,3 L 9,3 z" HorizontalAlignment="Right" VerticalAlignment="Bottom">
    <Path.Fill>
    <DrawingBrush TileMode="Tile" Viewbox="0,0,3,3" Viewport="0,0,3,3" ViewportUnits="Absolute" ViewboxUnits="Absolute">
    <DrawingBrush.Drawing>
    <DrawingGroup>
    <GeometryDrawing Brush="{StaticResource ResizeGripperForeground}">
    <GeometryDrawing.Geometry>
    <RectangleGeometry Rect="0,0,2,2"/>
    </GeometryDrawing.Geometry>
    </GeometryDrawing>
    </DrawingGroup>
    </DrawingBrush.Drawing>
    </DrawingBrush>
    </Path.Fill>
    </Path>
    </grid>
    </ControlTemplate>
    </Setter.Value>
    </Setter>
    </Style>


    داخل تمپلت ویندوز در مکان مناسب ریسایز گریپ رو بزارید


    <ResizeGrip Width="10" Height="10" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Row="1" IsTabStop="False" Visibility="Collapsed" WindowChrome.ResizeGripDirection="BottomRight" />
    خیلی ممنون
    قصدم اینه که وقتی WindowStyle را روی None میذارم ، فقط پنجره ی خودم را نشون بده بدون اینکه هیچ border اضافی ای رو نشون بده و البته قابلیت تغییر اندازه ی پنجره هم با درگ موس ، داشته باشه .
    اون border مربوط به تغییر اندازه که دور پنجره مون اضافه میشه (با مقداردهی پروپرتی ResizeMode به CanResize یا CanResizeWithGrip) ، با ایجاد تمپلیت برای ویندوز ، حذف و نادیده گرفته نمیشه .
    به تمپلیت Grip ، نیاز ندارم .

تاپیک های مشابه

  1. نمایش drawer menu زیر toolbar
    نوشته شده توسط mohajer68 در بخش Android Studio
    پاسخ: 0
    آخرین پست: یک شنبه 10 آبان 1394, 19:59 عصر
  2. چطوری همچین برنامه زیبایی میسازند
    نوشته شده توسط Shut Down در بخش Android Studio
    پاسخ: 19
    آخرین پست: دوشنبه 06 مرداد 1393, 05:02 صبح
  3. چارت رنگ برای رنگ امیزی فرم های که میسازید
    نوشته شده توسط c4soft در بخش Access
    پاسخ: 0
    آخرین پست: سه شنبه 12 مرداد 1389, 22:35 عصر
  4. مشکل در ریسایز ، ذخیره و بازیابی عکس در دیتابیس
    نوشته شده توسط seven7777777 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: چهارشنبه 06 خرداد 1388, 12:20 عصر
  5. دسترسی از زیرفرم به toolbar داخل Formset
    نوشته شده توسط برنامه نویس کوچک در بخش Foxpro
    پاسخ: 4
    آخرین پست: شنبه 08 مهر 1385, 14:05 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •