• 0
Amir.Shdk

چجوری اسکرین شات بگیریم؟

سوال

3 پاسخ به این سوال تا کنون داده شده است

  • 0

سلام برای گرفتن اسکرین شات یه راهی هست که باید UIElement ی رو به یه تابع بدی و اون تابع UIElement  رو تبدیل به عکس میکنه.

UIElement نوع همه ی کنترل ها هست حتی Page ها.

توی این مثال میاد عکس از خود صفحه ای که هست میگیره (که اینجا MainPage میشه)

توی قسمت طراحی کدهای زیر رو بنویس:

    <Grid x:Name="controlsGrid"
          Background="#FF09333A">
        <Button Click="ButtonBase_OnClick"
                Content="take screenshot"
                Margin="135,150,0,433" />
        <Image x:Name="imagePreview"
               Height="437"
               VerticalAlignment="Bottom"
               Stretch="Fill" />
        <RadioButton Content="RadioButton"
                     HorizontalAlignment="Left"
                     Margin="135,30,0,0"
                     VerticalAlignment="Top" />
        <TimePicker HorizontalAlignment="Left"
                    Margin="67,91,0,0"
                    VerticalAlignment="Top"
                    Width="262" />
    </Grid>
صفحه کدنویسی ویژوال بیسیکت رو باز کن:

فضاهای نامی زیر رو تعریف کن:

Imports System.Threading.Tasks
Imports Windows.UI.Xaml.Media.Imaging
 
حالا تابع زیر رو تعریف بنویس:
    Private Async Function CreateBitmapFromElement(ByVal uielement As FrameworkElement) As Task(Of RenderTargetBitmap)
        Try
            Dim renderTargetBitmap As New RenderTargetBitmap()
            Await renderTargetBitmap.RenderAsync(uielement)
            Return renderTargetBitmap
        Catch ex As Exception
            System.Diagnostics.Debug.WriteLine(ex)
        End Try
        Return Nothing
    End Function
 
تابع رویداد Click رو بنویس:
    Private Async Sub ButtonBase_OnClick(sender As Object, e As RoutedEventArgs)
        imagePreview.Source = Await CreateBitmapFromElement(Me)
    End Sub
 
بادت نره توابعی که تعریف شد،دارای کلمه کلیدی Async هستند!
کنترل RadioButton و TimePicker الکی بر روی صفحه قرار داده شده اند!
پسند شده توسط 3 کاربر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر


  • 0

این الان فقط از mainpage اسکرین شات میگیره؟


الان اینو تو پس زمینه فعال کنیم میتونه از محیط ویندوزفون هم اسکرین شات بگیره؟


بعد اینکه این کد تو کدوم نسخه کار میکنه؟ (رو وینفون 7 که جواب نداد)


 


و یه سوال دیگه : من الان پروژه ی جدید وینفون 8 درست میکنم همون اول این دوتا ارور رو میده !!!! چیکارش کنم درست شه؟؟


 


Untitlffed.png


به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

از کنترل های صفحه ای که داخلش هست عکس می گیره.

برای ویندوزفون 8.1 نسخه Universal هست دیگه(انجمنی که پست گذاشتید هم همینه)

اگه برای سیلورلایت می خواهید توی پست زیر هست:

 

https://www.win-nevis.com/topic/32-گرفتن-اسکرین-شات-با-استفاده-از-button/

 

نمیدونم چطوری میشه از صفحه های غیر از برنامه عکس گرفت.

 

راحع به اون یکی سوالتون، توی تاپیک جداگانه بپرسید، پاسخ داده خواهد شد.

پسند شده توسط 2 کاربر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
مهمان
این موضوع برای عدم ارسال قفل گردیده است.