Skip to content

Instantly share code, notes, and snippets.

View Grabacr07's full-sized avatar
🏠
Working from home

Manato Kameya Grabacr07

🏠
Working from home
View GitHub Profile
@Grabacr07
Grabacr07 / MainWindow.xaml
Created August 28, 2015 11:42
.NET Framework 4.5 だと動く。4.5.1 だと例外スローされる。
<Window x:Class="WpfApplication38.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="200"
Height="100">
<TextBox Text="{Binding SampleText}" />
</Window>
@Grabacr07
Grabacr07 / MainWindowViewModel.cs
Created August 28, 2015 15:58
.NET Framework 4.5.1 以降でビルドする場合は CurrentMetricUnit と CurrentImperialUnit の set アクセサーは public にしてください
public class MainWindowViewModel : ViewModel
{
private double _metricValue, _imperialValue;
public ICommand ImperialUnitToMetric { get; private set; }
public ICommand MetricToImperialUnit { get; private set; }
public MetricUnit CurrentMetricUnit { get; set; }
public ImperialUnit CurrentImperialUnit { get; set; }
@Grabacr07
Grabacr07 / TimerBehavior.cs
Last active August 29, 2015 13:56
TextBlock をタイマーにするやつ。何も設定しなければ、1 秒ごとにアタッチ先 TextBlock.Text に現在時刻を設定する。Interval プロパティで更新頻度、Proc プロパティで更新時に TextBlock.Text に出力する内容を指定できる。
/// <summary>
/// <see cref="TextBlock"/> にタイマー機能を付与します。
/// </summary>
public class TimerBehavior : Behavior<TextBlock>
{
private DispatcherTimer timer;
#region Interval 依存関係プロパティ
/// <summary>
<StackPanel x:Name="LayoutRoot"
Background="White">
<TextBlock FontFamily="Segoe UI Light">
<Run Text="RepeatButton Sample "
FontSize="20" />
<Run Text="(Silverlight)"
FontSize="16" />
</TextBlock>
<StackPanel Orientation="Horizontal">
<StackPanel x:Name="LayoutRoot"
Background="White">
<TextBlock FontFamily="Segoe UI Light">
<Run Text="ToggleButton Sample "
FontSize="20" />
<Run Text="(Silverlight)"
FontSize="16" />
</TextBlock>
@Grabacr07
Grabacr07 / ScrollBar.template.xaml
Last active August 29, 2015 13:57
ScrollBar の標準テンプレート (の抜粋)
<Grid x:Name="Bg"
SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition MaxWidth="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}}" />
<ColumnDefinition Width="0.00001*" />
<ColumnDefinition MaxWidth="{DynamicResource {x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}}" />
</Grid.ColumnDefinitions>
<Border BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
static class Extensions
{
public static IEnumerable<T[]> ふぁぼツバめそっど<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
var buffer = new List<T>();
foreach (var value in source)
{
if (predicate(value))
{
@Grabacr07
Grabacr07 / GetRealSize.cs
Created October 31, 2014 12:27
Viewbox 内の要素が実際に描画されているサイズを計算するやつ (WPF)。Viewbox 内の要素 (real size を知りたいやつ) から Viewbox 外の要素 (このコードでは Window) にアクセスできれば、その座標系に変換してほげもげっと。たぶん。
/// <summary>
/// Viewbox 内に配置された要素について、実際に描画されているサイズを計算します。
/// </summary>
public static Size GetRealSize(FrameworkElement target)
{
var min = target.TranslatePoint(new Point(0, 0), Window.GetWindow(target));
var max = target.TranslatePoint(new Point(target.ActualWidth, target.ActualHeight), Window.GetWindow(target));
return (Size)(max - min);
}
@Grabacr07
Grabacr07 / Blynclight.Console.cs
Created November 10, 2014 17:10
Blync を光らせて遊ぶ (コンソールから (テスト))
class Program
{
static void Main(string[] args)
{
var controller = new BlyncLightController();
var numberOfDevices = controller.InitBlyncDevices();
if (numberOfDevices == 0) return;
try
@Grabacr07
Grabacr07 / HideSystemMenuBehavior.cs
Created May 25, 2012 19:48
http://grabacr.net/archives/208 に張ったコードをそのまま。ただのテストですよ?
using System;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Interactivity;
using System.Windows.Interop;
namespace SystemMenuSample
{
public class HideSystemMenuBehavior : Behavior<Window>
{