VB C# .NET Freamworkの備忘録

C#, VB.NET Freamworkの備忘録を掲載しています。 コントロール、WPF、スレッド、共通関数と実用的なコードを掲載してきます。

2013年07月

PDF表示



設定
   /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
‌ 
            Frame frame = new Frame(); 
            WebBrowser browser = new WebBrowser();
            //browser.Navigate(new Uri(@"C:/Users/arimura/Downloads/books2009.pdf#toolbar=0&navpanes=0&scrollbar=0&view=Fit", UriKind.Absolute));
            //browser.Navigate(new Uri(@"C:/Users/arimura/Downloads/bnr_blogApp.gif"));
            browser.Navigate(new Uri(@"C:/Users/arimura/Downloads/drawBD.swf"));
            frame.Content = browser;
‌ 
            this.AddChild(frame);
‌ 
‌ 
‌ 
        }
    }
‌ 
‌ 
クリーン
WebBrowser browser = frame.Content as WebBrowser;
browser.Dispose();
frame.Content = null;
‌ 
‌ 
‌ 
WinFormのみ以下対応。WPFで使用する際は、ホスティングする。
‌ 
  private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
‌ 
‌ 
this.axAcroPDF1 = new AxAcroPDFLib.AxAcroPDF();
                this.axAcroPDF1.Dock = System.Windows.Forms.DockStyle.Fill;
                this.axAcroPDF1.Enabled = true;
‌ 
                this.axAcroPDF1.Name = "axAcroPDF1";
                this.axAcroPDF1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAcroPDF1.OcxState")));
‌ 
‌ 
      axAcroPDF1.LoadFile(DownloadedFullFileName);
                        axAcroPDF1.Visible = true;
‌ 

ImageBrush


ImageBrushにはStreachプロパティがあり、イメージの引き伸ばし方法を指定します。
指定できるのは、None、Uniform、UniformToFill、Fillの4種類です。

None : 元のサイズのまま何もしない。
Uniform : 縦横比を維持したまま、領域内に収まるよう伸縮する。
UniformToFill : 縦横比を維持しながら、領域を完全に塗りつぶすように伸縮する。
Fill : 領域を完全に塗りつぶすよう伸縮する。縦横比は維持しない。

http://gushwell.ldblog.jp/archives/52312268.html

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
‌ 
namespace WpfApplication4
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
‌ 
        private System.IO.FileSystemWatcher watcher;
        private DispatcherTimer displayTimer;
        private DispatcherTimer materialTimer;
‌ 
        public MainWindow()
        {
            InitializeComponent();
‌ 
            displayTimer = new DispatcherTimer();
            displayTimer.Tick += Display;
‌ 
            materialTimer = new DispatcherTimer();
            materialTimer.Tick += Material;              
‌ 
‌ 
            this.Loaded += (s, o) =>
                {
‌ 
‌ 
                    System.Threading.Thread thread = new System.Threading.Thread(() =>
                        {
                            int index = 0;
                            //while (index < 10)
                            while (true)
                            {
‌ 
                                Console.WriteLine(DateTime.Now.ToString() + "終了フラグチェック");
                                System.Threading.Thread.Sleep(1000);
                                index++;
                            }
‌ 
                            this.ExitProcess();
‌ 
                        });
‌ 
                    Console.WriteLine("終了フラグ監視");
                    thread.IsBackground = true;
                    thread.Start();
‌ 
‌ 
‌ 
                    watcher = new System.IO.FileSystemWatcher(@"C:\Users\arimura\Desktop", "*.txt");
                    watcher.NotifyFilter = System.IO.NotifyFilters.LastWrite;
                    watcher.IncludeSubdirectories = false;
                    //watcher.SynchronizingObject = this;
‌ 
                    //監視を開始する
                    watcher.EnableRaisingEvents = true;
                    Console.WriteLine("監視を開始しました。");
‌ 
                    watcher.Changed += FileChanged;
‌ 
                };
        }
‌ 
        protected void ExitProcess()
        {
            Console.WriteLine("終了処理");
            this.watcher.Changed -= FileChanged;
            this.displayTimer.Stop();
            this.materialTimer.Stop();
‌ 
‌ 
        }
‌ 
‌ 
        protected void FileChanged(object sender, System.IO.FileSystemEventArgs e)
        {
            //this.watcher.Changed -= FileChanged;
            Console.WriteLine("監視ファイル変更");
‌ 
‌ 
            displayTimer.Interval = TimeSpan.FromSeconds(5);
            displayTimer.Start();
    }
‌ 
        private int i = 0;
‌ 
        protected void Display(object sender, EventArgs e)
        {
            materialTimer.IsEnabled = true;
            Canvas.SetTop(this.txtaaa, 0);
‌ 
            Console.WriteLine("画面決定");
            i += 10;
            Canvas.SetLeft(this.txtaaa, i);
‌ 
            materialTimer.Interval = TimeSpan.FromSeconds(1);
            materialTimer.Start();
‌ 
        }
‌ 
        private int j = 0;
‌ 
        protected void Material(object sender, EventArgs e)
        {
            Console.WriteLine("素材決定");
            j += 10;
            Canvas.SetTop(this.txtaaa, i);
‌ 
        }
    }
‌ 
}

↑このページのトップヘ